"""Define tests for confidence calculation.""" import os import numpy as np import pytest import ancillary_data as anc import mvcm.conf as conf @pytest.fixture def fixturepath(): """Define path.""" return os.path.join(os.path.dirname(__file__), "fixtures") @pytest.fixture def rad(): """Define dummy radiance array.""" return np.arange(260, 282) @pytest.fixture def single_threshold(): """Define dummy single thresholds.""" return [267, 270, 273, 1] @pytest.fixture def double_threshold(): """Define dummy double thresholds.""" return [264, 267, 270, 273, 276, 279, 1] @pytest.fixture def reference_data(fixturepath): """Define reference file name.""" return os.path.join(fixturepath, "ref_conf.npz") def test_single_threshold(rad, single_threshold, reference_data): """Test single threshold compuputation.""" ref_confidence = np.load(reference_data)["ref_sgl"] ref_confidence_flipped = np.load(reference_data)["ref_sgl_flipped"] c = conf.conf_test_new(rad, single_threshold) assert np.all(c == ref_confidence) single_threshold[0:-1] = single_threshold[-2::-1] c = conf.conf_test_new(rad, single_threshold) assert np.all(c == ref_confidence_flipped) def test_double_threshold(rad, double_threshold, reference_data): """Test double threshold computation.""" ref_confidence = np.load(reference_data)["ref_dbl"] ref_confidence_flipped = np.load(reference_data)["ref_dbl_flipped"] c = conf.conf_test_dble(rad, double_threshold) print(c) assert np.all(c == ref_confidence) double_threshold[0:-1] = double_threshold[-2::-1] c = conf.conf_test_dble(rad, double_threshold) assert np.all(c == ref_confidence_flipped) def test_c_single_threshold(rad, single_threshold, reference_data): """Test C version of single threshold computation.""" ref_confidence = np.load(reference_data)["ref_sgl"] ref_confidence_flipped = np.load(reference_data)["ref_sgl_flipped"] c = anc.py_conf_test( rad, single_threshold[0], single_threshold[2], single_threshold[3], single_threshold[1] ) assert np.all(c == ref_confidence) single_threshold[0:-1] = single_threshold[-2::-1] c = anc.py.conf_test( rad, single_threshold[0], single_threshold[2], single_threshold[3], single_threshold[1] ) assert np.all(c == ref_confidence_flipped)