"""unit tests for expansion 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.expansion_wave import G3DExpansionWaveCalculator
from g3d.defs import AngleType
[docs]
class TestExpansionWave(CFlowTestCase):
"""CFlow unit tests: expansion wave"""
def _setup(self) -> None:
super()._setup()
self.__expansion_wave = G3DExpansionWaveCalculator()
self.__M = 2.5
self.__theta = 10.
self.__nu = 0.68284
self.__M2 = 1.43497
self.__M21 = 2.96736
self.__PR21 = 0.48852
self.__TR21 = 0.81491
[docs]
def test_expansion_wave_relations_kwargs(self) -> None:
"""CFlow unit tests: expansion wave (kwargs)"""
self._setup()
self.assertEqual(self.__expansion_wave.get_Prandtl_Meyer_function(
M=self.__M,
precision=self._prec),
self.__nu)
self.assertEqual(self.__expansion_wave.find_Mach(
theta=self.__theta,
angle_type=AngleType.DEGREES,
precision=self._prec),
self.__M2)
self.assertEqual(self.__expansion_wave.analyze_expansion_region(
M1=self.__M,
theta=self.__theta,
angle_type=AngleType.DEGREES,
precision=self._prec),
(self.__M21, self.__PR21, self.__TR21))
[docs]
def test_expansion_wave_relations_args(self) -> None:
"""CFlow unit tests: expansion wave (args)"""
self._setup()
self.__theta *= (np.pi / 180.)
self.assertEqual(self.__expansion_wave.get_Prandtl_Meyer_function(
self.__M,
precision=self._prec),
self.__nu)
self.assertEqual(self.__expansion_wave.find_Mach(
self.__theta,
precision=self._prec),
self.__M2)
self.assertEqual(self.__expansion_wave.analyze_expansion_region(
self.__M,
self.__theta,
precision=self._prec),
(self.__M21, self.__PR21, self.__TR21))
if __name__ == '__main__':
unittest.main()