代码仓库移植
This commit is contained in:
commit
0f57ba94f3
44 files changed
+7119
No files matched your search
@@ -0,0 +1,47 @@
|
||||
# tests/cryo_tank/test_heat_leak.py
|
||||
"""Tests for heat leak models."""
|
||||
from cryo_tank.heat_leak import HeatLeakModel, MLIHeatLeak, FoamHeatLeak
|
||||
|
||||
|
||||
class TestMLIHeatLeak:
|
||||
|
||||
def test_mli_returns_constant_heat_flux(self):
|
||||
model = MLIHeatLeak(A_total=3.306, q_mli=1.5)
|
||||
Q = model.compute(T_inner=78.0, T_env=300.0)
|
||||
assert abs(Q - 3.306 * 1.5) < 1e-10
|
||||
|
||||
def test_mli_default_q_is_1(self):
|
||||
model = MLIHeatLeak(A_total=3.306)
|
||||
Q = model.compute(T_inner=78.0, T_env=300.0)
|
||||
assert abs(Q - 3.306) < 1e-10
|
||||
|
||||
def test_mli_independent_of_temperature(self):
|
||||
model = MLIHeatLeak(A_total=3.306, q_mli=2.0)
|
||||
Q1 = model.compute(T_inner=78.0, T_env=300.0)
|
||||
Q2 = model.compute(T_inner=80.0, T_env=250.0)
|
||||
assert abs(Q1 - Q2) < 1e-10
|
||||
|
||||
|
||||
class TestFoamHeatLeak:
|
||||
|
||||
def test_foam_constant_k(self):
|
||||
model = FoamHeatLeak(A_total=3.306, k_eff=0.03, delta=0.05)
|
||||
Q = model.compute(T_inner=78.0, T_env=300.0)
|
||||
expected = 3.306 * 0.03 * (300.0 - 78.0) / 0.05
|
||||
assert abs(Q - expected) < 1e-6
|
||||
|
||||
def test_foam_callable_k(self):
|
||||
def k_func(T):
|
||||
return 0.01 + 0.0001 * T # linear k(T)
|
||||
|
||||
model = FoamHeatLeak(A_total=3.306, k_eff=k_func, delta=0.05)
|
||||
Q = model.compute(T_inner=78.0, T_env=300.0)
|
||||
T_mean = (300.0 + 78.0) / 2.0
|
||||
k_at_mean = k_func(T_mean)
|
||||
expected = 3.306 * k_at_mean * (300.0 - 78.0) / 0.05
|
||||
assert abs(Q - expected) < 1e-6
|
||||
|
||||
def test_foam_zero_dT_gives_zero_Q(self):
|
||||
model = FoamHeatLeak(A_total=3.306, k_eff=0.03, delta=0.05)
|
||||
Q = model.compute(T_inner=300.0, T_env=300.0)
|
||||
assert abs(Q) < 1e-10
|
||||
Reference in new issue
Block a user