-
Notifications
You must be signed in to change notification settings - Fork 77
/
test_water_density_tanaka_2001.py
44 lines (38 loc) · 1.32 KB
/
test_water_density_tanaka_2001.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import warnings
from chempy.units import allclose
from ..water_density_tanaka_2001 import water_density
def test_water_density():
warnings.filterwarnings("error")
assert abs(water_density(273.15 + 0) - 999.8395) < 0.004
assert abs(water_density(273.15 + 4) - 999.9720) < 0.003
assert abs(water_density(273.15 + 10) - 999.7026) < 0.0003
assert abs(water_density(273.15 + 15) - 999.1026) < 0.0001
assert abs(water_density(273.15 + 20) - 998.2071) < 0.0005
assert abs(water_density(273.15 + 22) - 997.7735) < 0.0007
assert abs(water_density(273.15 + 25) - 997.0479) < 0.0009
assert abs(water_density(273.15 + 30) - 995.6502) < 0.0016
assert abs(water_density(273.15 + 40) - 992.2) < 0.02
try:
water_density(1)
except UserWarning:
pass # good warning raised
else:
raise
warnings.resetwarnings()
try:
import quantities as pq
import numpy as np
unit = pq.kg / pq.m ** 3
assert allclose(
water_density(298.15 * pq.K, units=pq),
997.047021671824 * unit,
atol=1e-8 * unit,
)
assert allclose(
water_density(np.linspace(297, 299) * pq.K, units=pq),
997 * unit,
rtol=1e-3,
atol=1e-3 * unit,
)
except ImportError:
pass