94 lines
2.7 KiB
Python
94 lines
2.7 KiB
Python
import pytest
|
|
import warnings
|
|
from entropyk import (
|
|
Concentration,
|
|
VolumeFlow,
|
|
RelativeHumidity,
|
|
VaporQuality,
|
|
RefrigerantSource,
|
|
RefrigerantSink,
|
|
BrineSource,
|
|
BrineSink,
|
|
AirSource,
|
|
AirSink,
|
|
FlowSource,
|
|
FlowSink,
|
|
System,
|
|
)
|
|
|
|
def test_physical_types_instantiation():
|
|
"""Test instantiation and constraints of new physical types."""
|
|
c = Concentration(0.3)
|
|
assert c.value == 0.3
|
|
with pytest.raises(ValueError):
|
|
Concentration(1.5)
|
|
|
|
vf = VolumeFlow(0.1)
|
|
assert vf.value == 0.1
|
|
with pytest.raises(ValueError):
|
|
VolumeFlow(-0.1)
|
|
|
|
rh = RelativeHumidity(0.5)
|
|
assert rh.value == 0.5
|
|
with pytest.raises(ValueError):
|
|
RelativeHumidity(-0.1)
|
|
|
|
vq = VaporQuality(0.8)
|
|
assert vq.value == 0.8
|
|
with pytest.raises(ValueError):
|
|
VaporQuality(1.1)
|
|
|
|
def test_refrigerant_boundary():
|
|
"""Test RefrigerantSource and RefrigerantSink instantiation."""
|
|
source = RefrigerantSource(fluid="R134a", pressure_pa=200000.0, quality=0.5)
|
|
sink = RefrigerantSink(fluid="R134a", p_back_pa=100000.0, quality=1.0)
|
|
|
|
assert "R134a" in repr(source)
|
|
assert "0.50" in repr(source)
|
|
assert "R134a" in repr(sink)
|
|
|
|
sys = System()
|
|
sys.add_component(source)
|
|
sys.add_component(sink)
|
|
|
|
def test_brine_boundary():
|
|
"""Test BrineSource and BrineSink instantiation."""
|
|
source = BrineSource(fluid="EthyleneGlycol", concentration=0.3, temperature_k=280.0, pressure_pa=200000.0)
|
|
sink = BrineSink(p_back_pa=150000.0)
|
|
|
|
assert "EthyleneGlycol" in repr(source)
|
|
assert "0.30" in repr(source)
|
|
assert "150000" in repr(sink)
|
|
|
|
sys = System()
|
|
sys.add_component(source)
|
|
sys.add_component(sink)
|
|
|
|
def test_air_boundary():
|
|
"""Test AirSource and AirSink instantiation."""
|
|
source = AirSource(temperature_k=293.15, relative_humidity=0.5, pressure_pa=101325.0)
|
|
sink = AirSink(p_back_pa=101325.0)
|
|
|
|
assert "293.1" in repr(source)
|
|
assert "0.50" in repr(source)
|
|
|
|
sys = System()
|
|
sys.add_component(source)
|
|
sys.add_component(sink)
|
|
|
|
def test_deprecated_flow_boundary():
|
|
"""Test that FlowSource and FlowSink raise deprecation warnings."""
|
|
with warnings.catch_warnings(record=True) as w:
|
|
warnings.simplefilter("always")
|
|
FlowSource(pressure_pa=100000.0, temperature_k=300.0, fluid="Water")
|
|
assert len(w) == 1
|
|
assert issubclass(w[-1].category, DeprecationWarning)
|
|
assert "deprecated" in str(w[-1].message).lower()
|
|
|
|
with warnings.catch_warnings(record=True) as w:
|
|
warnings.simplefilter("always")
|
|
FlowSink()
|
|
assert len(w) == 1
|
|
assert issubclass(w[-1].category, DeprecationWarning)
|
|
assert "deprecated" in str(w[-1].message).lower()
|