Coverage for NeuralTSNE/NeuralTSNE/TSNE/tests/fixtures/parametric_tsne_fixtures.py: 100%
15 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-18 16:32 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-18 16:32 +0000
1from unittest.mock import patch
3import pytest
5from NeuralTSNE.TSNE.ParametricTSNE import ParametricTSNE
8@pytest.fixture
9def parametric_tsne_instance(request):
10 params = request.param
11 with (
12 patch(
13 "NeuralTSNE.TSNE.ParametricTSNE.parametric_tsne.ParametricTSNE.set_loss_fn"
14 ) as mock_loss_fn,
15 patch("torchinfo.summary") as mock_summary,
16 patch(
17 "NeuralTSNE.TSNE.ParametricTSNE.parametric_tsne.NeuralNetwork",
18 autospec=True,
19 ) as mock_nn,
20 ):
21 mock_loss_fn.return_value = params["loss_fn"]
22 instance = ParametricTSNE(**params)
23 yield instance, params, {
24 "loss_fn": mock_loss_fn,
25 "summary": mock_summary,
26 "nn": mock_nn,
27 }
30@pytest.fixture
31def default_parametric_tsne_instance():
32 params = {
33 "loss_fn": "kl_divergence",
34 "n_components": 2,
35 "perplexity": 50,
36 "batch_size": 10,
37 "early_exaggeration_epochs": 10,
38 "early_exaggeration_value": 8.0,
39 "max_iterations": 500,
40 "features": 15, # TODO: Add the ability to inject crucial params as in Classifier class
41 "multipliers": [1.0, 1.5],
42 "n_jobs": 6,
43 "tolerance": 1e-6,
44 "force_cpu": True,
45 }
46 with patch("torchinfo.summary"):
47 yield ParametricTSNE(**params), params