Exemple #1
0
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'
Exemple #2
0
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')
Exemple #3
0
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)
Exemple #4
0
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'