Source code for g3d.calc.tests.test_moving_shock

"""unit tests for moving shock wave 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.moving_shock import G3DMovingShockCalculator


[docs] class TestMovingShock(CFlowTestCase): """CFlow unit tests: moving shock waves""" def _setup(self) -> None: super()._setup() self.__moving_shock = G3DMovingShockCalculator() self.__T1 = 300. self.__PR21 = 2.1278730 self.__TR21 = 1.25625 self.__RR21 = 1.69383 self.__Up = 199.4451 self.__Ms = 1.40241 self.__Mr = 1.35374 self.__PR51 = 4.19481 self.__TR51 = 1.5389 self.__prec_PR21_2 = 3 self.__PR21_2 = np.round(self.__PR21, self.__prec_PR21_2)
[docs] def test_moving_shock_relations_kwargs(self) -> None: """CFlow unit tests: moving shock waves (kwargs)""" self._setup() self.assertEqual(self.__moving_shock.get_Ms( PR21=self.__PR21, precision=self._prec), self.__Ms) self.assertEqual(self.__moving_shock.get_up( PR21=self.__PR21, T1=self.__T1, precision=self._prec), self.__Up) self.assertEqual(self.__moving_shock.get_temperature_ratio( PR21=self.__PR21, precision=self._prec), self.__TR21) self.assertEqual(self.__moving_shock.get_density_ratio( PR21=self.__PR21, precision=self._prec), self.__RR21) self.assertEqual(self.__moving_shock.get_Mr( Ms=self.__Ms, precision=self._prec), self.__Mr) self.assertEqual(self.__moving_shock.get_Mr_from_PR21( PR21=self.__PR21, precision=2), np.round(self.__Mr, 2)) self.assertEqual(self.__moving_shock.get_PR51_from_PR21( PR21=self.__PR21, precision=self._prec), self.__PR51) self.assertEqual(self.__moving_shock.get_TR51_from_PR21( PR21=self.__PR21, precision=self._prec), self.__TR51) self.assertEqual(self.__moving_shock.get_PR21_from_Ms( Ms=self.__Ms, precision=self.__prec_PR21_2), self.__PR21_2) self.assertEqual(self.__moving_shock.find_PR21_from_Ms( Ms=self.__Ms, precision=self.__prec_PR21_2), self.__PR21_2) self.assertEqual(self.__moving_shock.find_PR21_from_Mr( Mr=self.__Mr, precision=self.__prec_PR21_2), self.__PR21_2) self.assertEqual(self.__moving_shock.find_PR21_from_up( Up=self.__Up, T1=self.__T1, precision=self.__prec_PR21_2), self.__PR21_2) self.assertEqual(self.__moving_shock.find_PR21_from_PR51( PR51=self.__PR51, precision=self.__prec_PR21_2), self.__PR21_2) self.assertEqual(self.__moving_shock.find_PR21_from_TR51( TR51=self.__TR51, precision=self.__prec_PR21_2), self.__PR21_2)
[docs] def test_moving_shock_relations_args(self) -> None: """CFlow unit tests: moving shock waves (args)""" self._setup() self.assertEqual(self.__moving_shock.get_Ms( self.__PR21, precision=self._prec), self.__Ms) self.assertEqual(self.__moving_shock.get_up( self.__PR21, self.__T1, precision=self._prec), self.__Up) self.assertEqual(self.__moving_shock.get_temperature_ratio( self.__PR21, precision=self._prec), self.__TR21) self.assertEqual(self.__moving_shock.get_density_ratio( self.__PR21, precision=self._prec), self.__RR21) self.assertEqual(self.__moving_shock.get_Mr( self.__Ms, precision=self._prec), self.__Mr) self.assertEqual(self.__moving_shock.get_Mr_from_PR21( self.__PR21, precision=2), np.round(self.__Mr, 2)) self.assertEqual(self.__moving_shock.get_PR51_from_PR21( self.__PR21, precision=self._prec), self.__PR51) self.assertEqual(self.__moving_shock.get_TR51_from_PR21( self.__PR21, precision=self._prec), self.__TR51) self.assertEqual(self.__moving_shock.get_PR21_from_Ms( self.__Ms, precision=self.__prec_PR21_2), self.__PR21_2) self.assertEqual(self.__moving_shock.find_PR21_from_Ms( self.__Ms, precision=self.__prec_PR21_2), self.__PR21_2) self.assertEqual(self.__moving_shock.find_PR21_from_Mr( self.__Mr, precision=self.__prec_PR21_2), self.__PR21_2) self.assertEqual(self.__moving_shock.find_PR21_from_up( self.__Up, self.__T1, precision=self.__prec_PR21_2), self.__PR21_2) self.assertEqual(self.__moving_shock.find_PR21_from_PR51( self.__PR51, precision=self.__prec_PR21_2), self.__PR21_2) self.assertEqual(self.__moving_shock.find_PR21_from_TR51( self.__TR51, precision=self.__prec_PR21_2), self.__PR21_2)
if __name__ == '__main__': unittest.main()