示例#1
0
def test_estimated_quantity_correlated_exception():
    """Tests that adding / subtracting dependent estimated quantities raise an
    exception."""

    a = 5 * unit.angstrom
    delta_a = 0.03 * unit.angstrom

    quantity_a = quantities.EstimatedQuantity(a, delta_a,
                                              '325262315:npt_production')
    quantity_c = quantities.EstimatedQuantity(a, delta_a,
                                              '325262315:npt_production')

    with pytest.raises(quantities.DependantValuesException):
        _ = quantity_a + quantity_c

    with pytest.raises(quantities.DependantValuesException):
        _ = quantity_a - quantity_c
示例#2
0
def test_estimated_quantity_serialization():
    """Tests the (de)serialization of an EstimatedQuantity"""

    a = 5 * unit.angstrom
    delta_a = 0.03 * unit.angstrom

    quantity_a = quantities.EstimatedQuantity(a, delta_a,
                                              '325262315:npt_production')

    state_a = quantity_a.__getstate__()

    quantity_b = quantities.EstimatedQuantity(0 * unit.kelvin, 0 * unit.kelvin,
                                              '685862315:npt_production')
    quantity_b.__setstate__(state_a)

    assert quantity_a.value == quantity_b.value
    assert quantity_a.uncertainty == quantity_b.uncertainty

    assert set(quantity_a.sources) == set(quantity_b.sources)
示例#3
0
def test_subtract_estimated_quantity():
    """Tests subtracting two independent EstimatedQuantity."""

    a = 5 * unit.angstrom
    delta_a = 0.03 * unit.angstrom

    b = 10 * unit.angstrom
    delta_b = 0.04 * unit.angstrom

    quantity_a = quantities.EstimatedQuantity(a, delta_a,
                                              '325262315:npt_production')
    quantity_b = quantities.EstimatedQuantity(b, delta_b,
                                              '893487693:npt_production')

    quantity_subtraction = quantity_b - quantity_a

    assert abs(quantity_subtraction.value -
               5 * unit.angstrom) < 0.001 * unit.angstrom
    assert abs(quantity_subtraction.uncertainty -
               0.05 * unit.angstrom) < 0.00001 * unit.angstrom
示例#4
0
def test_add_estimated_quantity():
    """Tests adding together two independent EstimatedQuantity."""

    a = 5 * unit.angstrom
    delta_a = 0.03 * unit.angstrom

    b = 10 * unit.angstrom
    delta_b = 0.04 * unit.angstrom

    quantity_a = quantities.EstimatedQuantity(a, delta_a,
                                              '325262315:npt_production')
    quantity_b = quantities.EstimatedQuantity(b, delta_b,
                                              '893487693:npt_production')

    # Addition of quantities:
    quantity_addition = quantity_a + quantity_b

    assert abs(quantity_addition.value -
               15 * unit.angstrom) < 0.001 * unit.angstrom
    assert abs(quantity_addition.uncertainty -
               0.05 * unit.angstrom) < 0.00001 * unit.angstrom
示例#5
0
def test_scalar_divide_estimated_quantity():
    """Tests dividing an EstimatedQuantity by a scalar."""

    b = 10 * unit.angstrom
    delta_b = 0.04 * unit.angstrom

    quantity_b = quantities.EstimatedQuantity(b, delta_b,
                                              '893487693:npt_production')

    quantity_scalar_divide = quantity_b / 2.0

    assert abs(quantity_scalar_divide.value -
               5 * unit.angstrom) < 0.001 * unit.angstrom
    assert abs(quantity_scalar_divide.uncertainty -
               0.02 * unit.angstrom) < 0.00001 * unit.angstrom
示例#6
0
def test_scalar_multiply_estimated_quantity():
    """Tests multiplying an EstimatedQuantity by a scalar."""

    a = 5 * unit.angstrom
    delta_a = 0.03 * unit.angstrom

    quantity_a = quantities.EstimatedQuantity(a, delta_a,
                                              '325262315:npt_production')

    quantity_scalar_multiply = quantity_a * 2.0

    assert abs(quantity_scalar_multiply.value -
               10 * unit.angstrom) < 0.001 * unit.angstrom
    assert abs(quantity_scalar_multiply.uncertainty -
               0.06 * unit.angstrom) < 0.00001 * unit.angstrom

    quantity_scalar_reverse_multiply = 2.0 * quantity_a

    assert abs(quantity_scalar_reverse_multiply.value -
               10 * unit.angstrom) < 0.001 * unit.angstrom
    assert abs(quantity_scalar_reverse_multiply.uncertainty -
               0.06 * unit.angstrom) < 0.00001 * unit.angstrom