ESBO-ETC/tests/optical_component/test_AHotOpticalComponent.py
2020-05-08 15:06:44 +02:00

43 lines
1.9 KiB
Python

from unittest import TestCase
from esbo_etc import Entry
from esbo_etc.classes.optical_component.AHotOpticalComponent import AHotOpticalComponent
from esbo_etc.classes.IRadiant import IRadiant
from esbo_etc.classes.SpectralQty import SpectralQty
from esbo_etc.classes.target.FileTarget import FileTarget
import astropy.units as u
import numpy as np
from typing import Union
class HotOpticalComponent(AHotOpticalComponent):
def __init__(self, parent: IRadiant, emissivity: Union[SpectralQty, int, float, str], temp: u.Quantity,
obstruction: float = 0, obstructor_temp: u.Quantity = 0 * u.K, obstructor_emissivity: float = 1):
super().__init__(parent, emissivity, temp, obstruction, obstructor_temp, obstructor_emissivity)
def _propagate(self, sqty: SpectralQty) -> SpectralQty:
return sqty
@staticmethod
def check_config(conf: Entry) -> Union[None, str]:
pass
class TestAHotOpticalComponent(TestCase):
wl = np.arange(201, 205, 1) << u.nm
def setUp(self):
self.target = FileTarget("data/target/target_demo_1.csv", self.wl)
def test___init__(self):
comp = HotOpticalComponent(self.target, SpectralQty(self.wl, np.repeat(0.5, 4) << u.dimensionless_unscaled),
temp=300 * u.K)
self.assertEqual(comp.calcBackground(),
SpectralQty(self.wl, np.array([4.31413931e-96, 1.37122214e-95, 4.30844544e-95,
1.33846280e-94]) << u.W / (u.m ** 2 * u.nm * u.sr)))
comp = HotOpticalComponent(self.target, "data/mirror/mirror_emissivity.csv", temp=300 * u.K)
self.assertEqual(comp.calcBackground(),
SpectralQty(self.wl, np.array([4.31413931e-96, 1.37122214e-95, 4.30844544e-95,
1.33846280e-94]) << u.W / (u.m ** 2 * u.nm * u.sr)))