Skip to content
Snippets Groups Projects
Select Git revision
  • e1573fd5e83c67a44c709a49ee68a2567a6922b3
  • main default protected
  • instances/2025_05
  • instances/2024_11
4 results

babel.config.js

Blame
  • test_bootstraps.py 2.76 KiB
    
    from src.data_handling.bootstraps import BootStraps
    
    import pytest
    import os
    
    import numpy as np
    
    
    class TestBootstraps:
    
        @pytest.fixture
        def path(self):
            path = os.path.join(os.path.dirname(__file__), "data")
            if not os.path.exists(path):
                os.makedirs(path)
            return path
    
        @pytest.fixture
        def boot_no_init(self, path):
            obj = object.__new__(BootStraps)
            super(BootStraps, obj).__init__()
            obj.number_bootstraps = 50
            obj.bootstrap_path = path
            return obj
    
        def test_valid_bootstrap_file(self, path, boot_no_init):
            station = "TESTSTATION"
            variables = "var1_var2_var3"
            window = 5
            # empty case
            assert len(os.listdir(path)) == 0
            assert boot_no_init.valid_bootstrap_file(station, variables, window) == (False, 50)
            # different cases, where files with bigger range are existing
            os.mknod(os.path.join(path, f"{station}_{variables}_hist5_nboots50_shuffled.dat"))
            assert boot_no_init.valid_bootstrap_file(station, variables, window) == (True, None)
            os.mknod(os.path.join(path, f"{station}_{variables}_hist5_nboots100_shuffled.dat"))
            assert boot_no_init.valid_bootstrap_file(station, variables, window) == (True, None)
            os.mknod(os.path.join(path, f"{station}_{variables}_hist10_nboots50_shuffled.dat"))
            os.mknod(os.path.join(path, f"{station}1_{variables}_hist10_nboots50_shuffled.dat"))
            assert boot_no_init.valid_bootstrap_file(station, variables, window) == (True, None)
            #  need to reload data and therefore remove not fitting files for this station
            assert boot_no_init.valid_bootstrap_file(station, variables, 20) == (False, 100)
            assert len(os.listdir(path)) == 1
            # reload because expanded boot number
            os.mknod(os.path.join(path, f"{station}_{variables}_hist5_nboots50_shuffled.dat"))
            boot_no_init.number_bootstraps = 60
            assert boot_no_init.valid_bootstrap_file(station, variables, window) == (False, 60)
            assert len(os.listdir(path)) == 1
            # reload because of expanded window size, but use maximum boot number from file names
            os.mknod(os.path.join(path, f"{station}_{variables}_hist5_nboots60_shuffled.dat"))
            boot_no_init.number_bootstraps = 50
            assert boot_no_init.valid_bootstrap_file(station, variables, 20) == (False, 60)
    
        def test_shuffle_single_variale(self, boot_no_init):
            data = np.array([[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]])
            res = boot_no_init.shuffle_single_variable(data)
            assert res.shape == data.shape
            assert res.max() == data.max()
            assert res.min() == data.min()
            assert set(np.unique(res)).issubset({1, 2, 3})
    
        def test_create_shuffled_data(self):
            pass