TST Extend tests for `scipy.sparse.*array`

SciPy sparse matrices (i.e. `scipy.sparse.*matrix`) are tested but their sparse arrays counterpart (i.e. `scipy.sparse.*array`) aren't yet will become ubiquitous (see #26418).

Tests and their parameterizations (when they exist) must be adapted to include `scipy.sparse.*array` conditionally to versions of SciPy that support them (i.e. `scipy>=1.8`).

### Steps

:information_source: You can take https://github.com/scikit-learn/scikit-learn/pull/27095 as an example for your PRs.

#### 1. Choose one of the files to adapt

 - Indicate the file you are adapting (later referred to as `<filename>`) on this issue so no-one ends up duplicating work. E.g.

```
Hi, I am starting working on `<filename>`.
```

Please double check as this list might be outdated, but candidate files might be:

 - [x] https://github.com/scikit-learn/scikit-learn/pull/27107
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27095
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27093
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27099
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27100
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27121
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27116
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27097
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27128
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27131
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27133
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27143
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27144
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27148
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27150
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27132
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27101
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27160
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27162
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27163
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27171 
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27188
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27289
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27170
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27173
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27175
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27176
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27177
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27178
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27201
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27202
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27206
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27208
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27210
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27211
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27212
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27213
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27214
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27215
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27216
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27217
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27218
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27219
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27220
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27221
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27222
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27223
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27224
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27225
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27226
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27227
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27228
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27229
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27230
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27231
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27233
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27235
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27237
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27239
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27241
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27242
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27246
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27252
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27253
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27254
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27257
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27261
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27262
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27270
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27273
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27274
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27276
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27277
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27278
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27301
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27319
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27323
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27175
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27341
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27326
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27319
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27366
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27250
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27301
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27288
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27220
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27494
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27166
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27205
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27164
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27179
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27104
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27203
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27502
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27413
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27240
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27314
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27723
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27161
 - [x] https://github.com/scikit-learn/scikit-learn/pull/28101
 - [x] https://github.com/scikit-learn/scikit-learn/pull/27847


#### 2. Perform the following (non-exhaustive) changes for `<filename>`

 - Add test parametrization for tests using `*_matrix` (for instance see https://github.com/scikit-learn/scikit-learn/pull/27095/commits/eda7b16442869f6ccb37dd1b2a1b3bc47e4bec51)
 - Adapt existing test parametrization to test against sparse array (for instance see https://github.com/scikit-learn/scikit-learn/pull/27095/commits/6717f9903091e2780948aa9ef5765e2cd6d0f84a)
 - Extend or add test checking that type of sparse containers are preserve by functions. E.g. adding tests like (as proposed by https://github.com/scikit-learn/scikit-learn/issues/27090#issuecomment-1683849213):
	```python
    sparse_input = sparse_container(...)
    sparse_output = process_sparse_container(sparse_input)

    assert isinstance(sparse_output, type(sparse_input))
	```
 - Run tests for this file:
   ```
   # Run all the test in <filename>
   pytest <filename> -k test_to_run
   
   # Run a specific test in this file
   pytest <filename> -k test_to_run
   ```
 - If tests fail, the tested implementations has to be adapted (let us know if you need help)

#### 3. Create a pull request

 - Use this title:

```
TST Extend tests for `scipy.sparse.*array` in `<filename>`
```

 - Mention this issue in its description:

```
Towards #27090.
```

#### 4. Once the pull request is created

 - Ignore the error on the CI related the changelog: those PR need not update the changelog since nothing has changed for the users (until this issue is resolved), and maintainers must label PRs as "No Changelog Needed" for the check to be deactivated.

COMMENT:
Working on `sklearn/cluster/tests/test_optics.py`

Labels: Sprint, module:test-suite, Meta-issue, good first PR to review