def test_statistics_calculator_power_spectral_density(): """Test absolute value calculator""" from resistics.statistics.calculator import StatisticCalculator import numpy as np specData, evalfreq = get_spectrum_data() calculator = StatisticCalculator() calculator.winLen = 1 assert calculator.winLen == 1 calculator.setSpectra(specData.freqArray, specData, evalfreq) statData = calculator.getDataForStatName("powerSpectralDensity") testData = { 24: { "psdEx": 912.0, "psdEy": 640.0, "psdHx": 1496.0, "psdHy": 1680.0 }, 40: { "psdEx": 784.0, "psdEy": 480.0, "psdHx": 792.0, "psdHy": 1344.0 }, } for efreq in evalfreq: for key, val in statData[efreq].items(): np.testing.assert_almost_equal(val, testData[efreq][key])
def test_statistics_calculator_coherence(): """Test absolute value calculator""" from resistics.statistics.calculator import StatisticCalculator import numpy as np specData, evalfreq = get_spectrum_data() calculator = StatisticCalculator() calculator.winLen = 1 assert calculator.winLen == 1 calculator.setSpectra(specData.freqArray, specData, evalfreq) statData = calculator.getDataForStatName("coherence") testData = { 24: { "cohExHx": 0.5462519936204147, "cohExHy": 0.13675856307435255, "cohEyHx": 0.590909090909091, "cohEyHy": 0.19523809523809524, }, 40: { "cohExHx": 0.49360956503813647, "cohExHy": 0.6379980563654033, "cohEyHx": 0.6734006734006734, "cohEyHy": 0.20634920634920634, }, } for efreq in evalfreq: for key, val in statData[efreq].items(): np.testing.assert_almost_equal(val, testData[efreq][key])
def test_statistics_calculator_transfer_function(): """Test absolute value calculator""" from resistics.statistics.calculator import StatisticCalculator import numpy as np specData, evalfreq = get_spectrum_data() calculator = StatisticCalculator() calculator.winLen = 1 assert calculator.winLen == 1 calculator.setSpectra(specData.freqArray, specData, evalfreq) statData = calculator.getDataForStatName("transferFunction") testData = { 24: { "ExHxRes": 0.0051423310440927615, "ExHxPhase": -38.08089717250079, "ExHxReal": 0.6183338309943266, "ExHxImag": -0.484502836667662, "ExHyRes": 0.002406937394247041, "ExHyPhase": -79.49669804710025, "ExHyReal": 0.09796954314720807, "ExHyImag": -0.5284263959390865, "EyHxRes": 0.003364188314919875, "EyHxPhase": 40.70059399014801, "EyHxReal": 0.48169602866527317, "EyHxImag": 0.4143326366079426, "EyHyRes": 0.001522842639593909, "EyHyPhase": 49.044485574181074, "EyHyReal": 0.2802030456852794, "EyHyImag": 0.3228426395939085, }, 40: { "ExHxRes": 0.0021009588268471532, "ExHxPhase": -12.512585801455565, "ExHxReal": 0.6328257191201355, "ExHxImag": -0.14043993231810512, "ExHyRes": 0.0017318809926677931, "ExHyPhase": -91.1943471837543, "ExHyReal": -0.012267343485617588, "ExHyImag": -0.5884094754653127, "EyHxRes": 0.002820078962210943, "EyHxPhase": 120.6095367512591, "EyHxReal": -0.3824027072758038, "EyHxImag": 0.6463620981387479, "EyHyRes": 0.0006838691483361542, "EyHyPhase": 1.4419233716812918, "EyHyReal": 0.36971235194585467, "EyHyImag": 0.009306260575296085, }, } for efreq in evalfreq: for key, val in statData[efreq].items(): np.testing.assert_almost_equal(val, testData[efreq][key])
def test_statistics_calculator_absval(): """Test absolute value calculator""" from resistics.statistics.calculator import StatisticCalculator import numpy as np specData, evalfreq = get_spectrum_data() calculator = StatisticCalculator() calculator.winLen = 1 assert calculator.winLen == 1 calculator.setSpectra(specData.freqArray, specData, evalfreq) statData = calculator.getDataForStatName("absvalEqn") testData = { 24: { "absExHx": 53.956000593075835, "absEyHx": 47.01063709417264, "absHxHx": 93.5, "absHyHx": 38.01315561749642, "absExHy": 28.609439001839934, "absEyHy": 28.635642126552707, "absHxHy": 38.01315561749642, "absHyHy": 105.0, "absExEx": 57.0, "absEyEx": 40.0, "absHxEx": 53.956000593075835, "absHyEx": 28.609439001839934, "absExEy": 40.0, "absEyEy": 40.0, "absHxEy": 47.01063709417264, "absHyEy": 28.635642126552707, }, 40: { "absExHx": 34.60130055359191, "absEyHx": 31.622776601683793, "absHxHx": 49.5, "absHyHx": 24.73863375370596, "absExHy": 51.24451190127583, "absEyHy": 22.80350850198276, "absHxHy": 24.73863375370596, "absHyHy": 84.0, "absExEx": 49.0, "absEyEx": 33.83784863137726, "absHxEx": 34.60130055359191, "absHyEx": 51.24451190127583, "absExEy": 33.83784863137726, "absEyEy": 30.0, "absHxEy": 31.622776601683793, "absHyEy": 22.80350850198276, }, } for efreq in evalfreq: for key, val in statData[efreq].items(): np.testing.assert_almost_equal(val, testData[efreq][key])
def test_statistics_calculator_partial_coherence(): """Test absolute value calculator""" from resistics.statistics.calculator import StatisticCalculator import numpy as np specData, evalfreq = get_spectrum_data() calculator = StatisticCalculator() calculator.winLen = 1 assert calculator.winLen == 1 calculator.setSpectra(specData.freqArray, specData, evalfreq) statData = calculator.getDataForStatName("partialCoherence") testData = { 24: { "cohExHx": 0.5462519936204147, "cohExHy": 0.13675856307435255, "cohEyHx": 0.590909090909091, "cohEyHy": 0.19523809523809524, "bivarEx": (1 + 0j), "parExHx": (1 + 0j), "parExHy": (1 + 0j), "bivarEy": (1 + 4.4408920985006264e-17j), "parEyHx": (1 + 5.518268288077701e-17j), "parEyHy": (0.9999999999999999 + 1.085551401855709e-16j), }, 40: { "cohExHx": 0.49360956503813647, "cohExHy": 0.6379980563654033, "cohEyHx": 0.6734006734006734, "cohEyHy": 0.20634920634920634, "bivarEx": (1 + 0j), "parExHx": (1 + 0j), "parExHy": (1 + 0j), "bivarEy": (1 + 2.960594732333751e-17j), "parEyHx": (0.9999999999999999 + 3.7303493627405256e-17j), "parEyHy": (0.9999999999999999 + 9.064913768073444e-17j), }, } for efreq in evalfreq: for key, val in statData[efreq].items(): np.testing.assert_almost_equal(val, testData[efreq][key])
def test_statistics_calculator_polarisation_direction(): """Test absolute value calculator""" from resistics.statistics.calculator import StatisticCalculator import numpy as np specData, evalfreq = get_spectrum_data() calculator = StatisticCalculator() calculator.winLen = 1 assert calculator.winLen == 1 calculator.setSpectra(specData.freqArray, specData, evalfreq) statData = calculator.getDataForStatName("polarisationDirection") testData = { 24: { "polExEy": 0.0, "polHxHy": 80.4010969314582 }, 40: { "polExEy": -63.43494882292201, "polHxHy": -54.293308599397115 }, } for efreq in evalfreq: for key, val in statData[efreq].items(): np.testing.assert_almost_equal(val, testData[efreq][key])