11from typing import Any
22from unittest import mock
33
4+ import numpy as np
5+
46from asar_xarray import utils
57from asar_xarray .records_metadata import process_dop_centroid_coeffs , process_measurement_sq_metadata , \
68 process_general_main_processing_params , process_noise_estimation , process_error_counters , process_parameter_codes , \
@@ -51,7 +53,7 @@ def test_processes_single_float_value_correctly() -> None:
5153 "MDS1_SQ_ADS_FLOAT_VALUE" : "0.5"
5254 }
5355 result = process_measurement_sq_metadata (metadata )
54- assert result ["float_value" ] == 0.5
56+ assert np . isclose ( result ["float_value" ], 0.5 , rtol = 1e-09 , atol = 1e-09 )
5557
5658
5759def test_processes_boolean_flags_correctly () -> None :
@@ -75,7 +77,7 @@ def test_processes_valid_general_main_processing_params() -> None:
7577 result = process_general_main_processing_params (metadata )
7678 assert result ["zero_doppler_time" ] == utils .get_envisat_time ("123, 45, 678" )
7779 assert result ["valid_flag" ] is True
78- assert result ["float_value" ] == 0.123
80+ assert np . isclose ( result ["float_value" ], 0.123 , rtol = 1e-09 , atol = 1e-09 )
7981 assert result ["integer_value" ] == 42
8082 assert result ["string_value" ] == "example"
8183
@@ -600,7 +602,7 @@ def test_processes_all_main_processing_params_correctly() -> None:
600602 result = process_main_processing_params (metadata )
601603 assert result ["raw_data_analysis" ] == [{"index" : 1 , "param_a" : 4.56 }]
602604 assert result ["image_parameters" ]["param_a" ] == [0.1 , 0.2 ]
603- assert result ["bandwidth" ]["param_a" ] == 0.5
605+ assert np . isclose ( result ["bandwidth" ]["param_a" ], 0.5 , rtol = 1e-9 , atol = 1e-9 )
604606 assert result ["nominal_chirp" ] == [{"index" : 1 , "param_a" : 2.0 }]
605607 assert result ["calibration_factors" ] == [{"index" : 1 , "factor_a" : 3.14 }]
606608 assert result ["output_statistics" ] == [{"index" : 1 , "value_a" : 0.01 }]
@@ -634,7 +636,7 @@ def test_skips_invalid_keys_in_main_processing_params() -> None:
634636 }
635637 result = process_main_processing_params (metadata )
636638 assert "invalid_key" not in result
637- assert result ["general.param_a" ] == 1.23
639+ assert np . isclose ( result ["general.param_a" ], 1.23 , rtol = 1e-9 , atol = 1e-9 )
638640
639641def test_handles_invalid_values_gracefully_in_main_processing_params () -> None :
640642 metadata = {
@@ -662,8 +664,8 @@ def test_processes_records_metadata_correctly() -> None:
662664 }
663665 attributes : dict [str , Any ] = {}
664666 process_records_metadata (dataset , attributes )
665- assert attributes ["records" ]["measurement_sq" ]["param_a" ] == 1.23
666- assert attributes ["records" ]["main_processing_params" ]["general.param_a" ] == 4.56
667+ assert np . isclose ( attributes ["records" ]["measurement_sq" ]["param_a" ], 1.23 , rtol = 1e-09 , atol = 1e-09 )
668+ assert np . isclose ( attributes ["records" ]["main_processing_params" ]["general.param_a" ], 4.56 , rtol = 1e-09 , atol = 1e-09 )
667669 assert attributes ["records" ]["dop_centroid_coeffs" ]["zero_doppler_time" ] == utils .get_envisat_time ("12345, 12, 10" )
668670
669671def test_handles_empty_records_metadata () -> None :
@@ -687,7 +689,7 @@ def test_handles_empty_records_metadata() -> None:
687689 }
688690 assert attributes ["records" ]["dop_centroid_coeffs" ] == {}
689691
690- def stest_kips_invalid_records_metadata_keys () -> None :
692+ def test_kips_invalid_records_metadata_keys () -> None :
691693 dataset = mock .Mock ()
692694 dataset .GetMetadata .return_value = {
693695 "INVALID_KEY" : "value" ,
@@ -696,4 +698,4 @@ def stest_kips_invalid_records_metadata_keys() -> None:
696698 attributes : dict [str , Any ] = {}
697699 process_records_metadata (dataset , attributes )
698700 assert "invalid_key" not in attributes ["records" ]
699- assert attributes ["records" ]["measurement_sq" ]["param_a" ] == 1.23
701+ assert np . isclose ( attributes ["records" ]["measurement_sq" ]["param_a" ], 1.23 , atol = 1e-8 )
0 commit comments