def test_carbon_dioxide_alt_name(): carbon_dioxide_data = PhaseDiagram('carbonic anhydride') assert isinstance(carbon_dioxide_data, PhaseDiagram) assert carbon_dioxide_data.idx == 2 assert carbon_dioxide_data.name == 'carbon dioxide' assert carbon_dioxide_data.cas == '124-38-9' assert carbon_dioxide_data.formula == 'CO2'
def test_carbon_dioxide(): carbon_dioxide_data = PhaseDiagram('carbon dioxide') assert isinstance(carbon_dioxide_data, PhaseDiagram) assert carbon_dioxide_data.idx == 2 assert carbon_dioxide_data.name == 'carbon dioxide' assert carbon_dioxide_data.cas == '124-38-9' assert carbon_dioxide_data.formula == 'CO2' assert carbon_dioxide_data.molar_mass == pint.Quantity( 44.0095, 'gram/mole') assert carbon_dioxide_data.alternative_names == ('carbonic anhydride', None, None) assert isinstance(carbon_dioxide_data.density_solid, pint.Quantity) assert carbon_dioxide_data.density_solid == pint.Quantity( 1.562, 'gram/cm**3') assert carbon_dioxide_data.density_liquid == pint.Quantity( 1.179, 'gram/cm**3') assert carbon_dioxide_data.antoine == (-56.57, 31.04, 7.58828, 861.8205, 271.88) assert carbon_dioxide_data.boiling_point == (pint.Quantity( 194.69, 'kelvin'), pint.Quantity(101325.0, 'pascal')) assert carbon_dioxide_data.melting_point == (pint.Quantity( 216.59, 'kelvin'), pint.Quantity(101325.0, 'pascal')) assert carbon_dioxide_data.triple_point == (pint.Quantity( 216.58, 'kelvin'), pint.Quantity(518500.0, 'pascal')) assert carbon_dioxide_data.critical_point == (pint.Quantity( 304.13, 'kelvin'), pint.Quantity(7.375E6, 'pascal')) assert carbon_dioxide_data.enthalpy_fusion == pint.Quantity( 9.02, 'kJ/mole') assert carbon_dioxide_data.enthalpy_sublimation == pint.Quantity( 25.2, 'kJ/mole') assert carbon_dioxide_data.enthalpy_vaporization == pint.Quantity( 15.8, 'kJ/mole')
def test_water(): water_data = PhaseDiagram('water') assert isinstance(water_data, PhaseDiagram) assert water_data.idx == 1 assert water_data.name == 'water' assert water_data.cas == '7732-18-5' assert water_data.formula == 'H2O' assert water_data.molar_mass == pint.Quantity(18.0153, 'gram/mole') assert water_data.alternative_names == (None, None, None) assert isinstance(water_data.density_solid, pint.Quantity) assert water_data.density_solid == pint.Quantity(0.9167, 'gram/cm**3') assert water_data.density_liquid == pint.Quantity(0.9970474, 'gram/cm**3') assert water_data.antoine == (0.01, 373.98, 8.05573, 1723.6425, 233.08) assert water_data.boiling_point == (pint.Quantity(373.124, 'kelvin'), pint.Quantity(101325.0, 'pascal')) assert water_data.melting_point == (pint.Quantity(273.15, 'kelvin'), pint.Quantity(101325.0, 'pascal')) assert water_data.triple_point == (pint.Quantity(273.16, 'kelvin'), pint.Quantity(611.657, 'pascal')) assert water_data.critical_point == (pint.Quantity(647.1, 'kelvin'), pint.Quantity(2.206E7, 'pascal')) assert water_data.enthalpy_fusion == pint.Quantity(6.009, 'kJ/mole') assert water_data.enthalpy_sublimation == pint.Quantity(44.0, 'kJ/mole') assert water_data.enthalpy_vaporization == pint.Quantity(40.66, 'kJ/mole') assert np.isclose(water_data.volume_change_fusion, pint.Quantity(-1.583, 'cm**3/mole'), atol=1E-3)
def test_water_formula(): water_data = PhaseDiagram('H2O') assert isinstance(water_data, PhaseDiagram) assert water_data.idx == 1 assert water_data.name == 'water' assert water_data.cas == '7732-18-5' assert water_data.formula == 'H2O'
def test_water_clapeyron_antoine_array_methods(): water = PhaseDiagram('water') assert np.allclose(water.clapeyron_sl(), np.loadtxt("tests/golden_files/golden_water_clapeyron_sl.csv", delimiter=",")) assert np.allclose(water.clapeyron_sv(), np.loadtxt("tests/golden_files/golden_water_clapeyron_sv.csv", delimiter=",")) assert np.allclose(water.clapeyron_lv(), np.loadtxt("tests/golden_files/golden_water_clapeyron_lv.csv", delimiter=",")) assert np.allclose(water.antoine_lv(), np.loadtxt("tests/golden_files/golden_water_antoine_lv.csv", delimiter=","))
def test_co2_clapeyron_antoine_array_methods(): co2 = PhaseDiagram('CO2') assert np.allclose(co2.clapeyron_sl(), np.loadtxt("tests/golden_files/golden_co2_clapeyron_sl.csv", delimiter=",")) assert np.allclose(co2.clapeyron_sv(), np.loadtxt("tests/golden_files/golden_co2_clapeyron_sv.csv", delimiter=",")) assert np.allclose(co2.clapeyron_lv(), np.loadtxt("tests/golden_files/golden_co2_clapeyron_lv.csv", delimiter=",")) assert np.allclose(co2.antoine_lv(), np.loadtxt("tests/golden_files/golden_co2_antoine_lv.csv", delimiter=","))
def test_water_formula(): water = PhaseDiagram('water') assert water.format_formula() == r'$\mathregular{H_2O}$'
def test_water_antoine_si(): water = PhaseDiagram('water') assert water.antoine_si == (273.15999999999997, 647.13, 10.18063302013294, 1723.6425, -40.069999999999965)
from phase_diagram.phase_diagram import PhaseDiagram from src.point_in_curve import point_in_function import numpy as np from functools import partial water = PhaseDiagram('H2O') ureg = water.ureg Q_ = ureg.Quantity water_clapeyron_sv = partial(water._clapeyron_sv_lv, curve='sv') water_clapeyron_lv = partial(water._clapeyron_sv_lv, curve='lv') @ureg.wraps(ureg.m, (ureg.m, ureg.m, None, ureg.m, ureg.m), strict=False) def straight_line_y(x0, range_=0, points=1, a=1, b=0): """A function created to test point_in_function""" x = np.linspace(x0, x0 + range_, points) y = a * x + b return y def test_point_in_straight_line_function(): assert point_in_function((Q_('3 m'), Q_('3 m')), straight_line_y) def test_point_not_in_straight_line_function(): assert not point_in_function((Q_('3 m'), Q_('4 m')), straight_line_y) def test_point_in_straight_line_function_tolerance(): assert point_in_function((Q_('3 m'), Q_('3.001 m')), straight_line_y)
from phase_diagram.phase_diagram import PhaseDiagram from phase_diagram.phase_diagram import ureg Q_ = ureg.Quantity water = PhaseDiagram('H2O') carbon_dioxide = PhaseDiagram('CO2') def test_supercritical_fluid(): assert water.physical_state((Q_('700 K'), Q_('1e8 Pa'))) == 'supercritical fluid' def test_gas(): assert water.physical_state((Q_('700 K'), Q_('1e5 Pa'))) == 'gas' def test_vapour_close_to_lv_curve(): assert water.physical_state((Q_('500 K'), Q_('1e5 Pa'))) == 'vapour' def test_vapour_close_to_sv_curve(): assert water.physical_state((Q_('250 K'), Q_('1e1 Pa'))) == 'vapour' def test_solid(): assert water.physical_state((Q_('250 K'), Q_('1e3 Pa'))) == 'solid' def test_liquid(): assert water.physical_state((Q_('400 K'), Q_('1e7 Pa'))) == 'liquid'