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

1from unittest.mock import patch 

2 

3import pytest 

4 

5from NeuralTSNE.TSNE.ParametricTSNE import ParametricTSNE 

6 

7 

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 } 

28 

29 

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