Source code for g3d.calc.tests.test_acoustics

"""unit tests for acoustic relations calculator"""
import unittest
import os

if os.environ.get('__USE_CUDA', '0') == '1':
    import cupy as np
else:
    import numpy as np

from g3d.calc.tests import CFlowTestCase
from g3d.calc.calculators.acoustics import G3DAcousticsCalculator


[docs] class TestAcoustics(CFlowTestCase): """CFlow unit tests: acoustic relations""" def _setup(self) -> None: super()._setup() self.__acoustics = G3DAcousticsCalculator() self.__SPL = 90. self.__dP = 0.894427190999916 self.__dRO = 7.737259437715537e-06 self.__dU = 0.002192223507352735 self.__Cinf = 340. self.__ROinf = 1.2
[docs] def test_acoustics_relations_kwargs(self) -> None: """test acoustic relations (kwargs)""" self._setup() self.assertEqual(self.__acoustics.get_dp_from_SPL( SPL=self.__SPL, precision=self._prec), np.round(self.__dP, self._prec)) self.assertEqual(self.__acoustics.get_SPL_from_dp( dP=self.__dP, precision=self._prec), np.round(self.__SPL, self._prec)) self.assertEqual(self.__acoustics.get_du( Cinf=self.__Cinf, ROinf=self.__ROinf, dP=self.__dP, precision=self._prec), np.round(self.__dU, self._prec)) self.assertEqual(np.round(self.__acoustics.get_dro( Cinf=self.__Cinf, dP=self.__dP) * 1.e6, self._prec), np.round(self.__dRO * 1.e6, self._prec))
[docs] def test_acoustics_relations_args(self) -> None: """test acoustic relations (args)""" self._setup() self.assertEqual(self.__acoustics.get_dp_from_SPL( self.__SPL, precision=self._prec), np.round(self.__dP, self._prec)) self.assertEqual(self.__acoustics.get_SPL_from_dp( self.__dP, precision=self._prec), np.round(self.__SPL, self._prec)) self.assertEqual(self.__acoustics.get_du( self.__Cinf, self.__ROinf, self.__dP, precision=self._prec), np.round(self.__dU, self._prec)) self.assertEqual(np.round(self.__acoustics.get_dro( self.__Cinf, self.__dP) * 1.e6, self._prec), np.round(self.__dRO * 1.e6, self._prec))
if __name__ == '__main__': unittest.main()