diff --git a/tests/test_determinist.py b/tests/test_determinist.py index 8ff4605f8edc246f1af932ccfdb1116c50c0d9c1..980493a4c076b5a1336819af136966fe6c5f494f 100644 --- a/tests/test_determinist.py +++ b/tests/test_determinist.py @@ -16,6 +16,11 @@ _all_metrics = ( 'NSE', 'KGE', 'KGE_D', 'KGEPRIME', 'KGEPRIME_D', ) +# list all available deterministic diagnostics +_all_diags = ( + 'completeness' +) + class TestMetrics(unittest.TestCase): @@ -203,6 +208,45 @@ class TestUncertainty(unittest.TestCase): ) +class TestDiagnostics(unittest.TestCase): + + def test_completeness(self): + obs = numpy.array( + [[4.7, 4.3, numpy.nan, 2.7, 4.1, 5.0]] + ) + + prd = numpy.array( + [[5.3, numpy.nan, 5.7, 2.3, 3.3, 4.1], + [4.3, 4.2, 4.7, 4.3, 3.3, 2.8], + [5.3, numpy.nan, 5.7, 2.3, 3.8, numpy.nan]] + ) + + msk = numpy.array( + [[[True, True, True, False, True, True], + [True, True, True, True, True, True]], + [[True, True, True, True, True, False], + [True, True, True, True, True, True]], + [[True, True, True, False, False, True], + [True, True, True, True, True, True]]] + ) + + exp = numpy.array( + [[[3.], + [4.]], + [[4.], + [5.]], + [[1.], + [3.]]] + ) + + numpy.testing.assert_almost_equal( + exp, + evalhyd.evald( + obs, prd, ["NSE"], t_msk=msk, diagnostics=["completeness"] + )[1] + ) + + if __name__ == '__main__': test_loader = unittest.TestLoader() test_suite = unittest.TestSuite() diff --git a/tests/test_probabilist.py b/tests/test_probabilist.py index c65da2416994b876da2af5b8600b357a9a489f0b..04d26c682dd2a0c466fb791b99bb35cae7b9f168 100644 --- a/tests/test_probabilist.py +++ b/tests/test_probabilist.py @@ -25,6 +25,11 @@ _all_metrics = ( 'CR', 'AW', 'AWN', 'AWI', 'WS', 'WSS' ) +# list all available deterministic diagnostics +_all_diags = ( + 'completeness' +) + class TestMetrics(unittest.TestCase): @@ -408,6 +413,44 @@ class TestMultiDimensional(unittest.TestCase): ) +class TestDiagnostics(unittest.TestCase): + + def test_completeness(self): + obs = numpy.array( + [[4.7, 4.3, numpy.nan, 2.7, 4.1, 5.0]] + ) + + prd = numpy.array( + [[[[5.3, numpy.nan, 5.7, 2.3, 3.3, numpy.nan], + [4.3, numpy.nan, 4.7, 4.3, 3.4, numpy.nan], + [5.3, numpy.nan, 5.7, 2.3, 3.8, numpy.nan]], + [[numpy.nan, 4.2, 5.7, 2.3, 3.1, 4.1], + [numpy.nan, 4.2, 4.7, 4.3, 3.3, 2.8], + [numpy.nan, 5.2, 5.7, 2.3, 3.9, 3.5]]]] + ) + + msk = numpy.array( + [[[[True, True, True, False, True, True], + [True, True, True, True, True, True]], + [[True, True, True, True, True, False], + [True, True, True, True, True, True]]]] + ) + + exp = numpy.array( + [[[[2.], + [3.]], + [[3.], + [4.]]]] + ) + + numpy.testing.assert_almost_equal( + exp, + evalhyd.evalp( + obs, prd, ["QS"], t_msk=msk, diagnostics=["completeness"] + )[1] + ) + + if __name__ == '__main__': test_loader = unittest.TestLoader() test_suite = unittest.TestSuite()