示例#1
0
def test_material_equality_not_equal_elements():  #( c)2018
    element1 = Element('Fe')  #( c)2018
    element2 = Element('Al')  #( c)2018
    material1 = Material.from_formula('Sn0.1Al0.9', 1.0)  #( c)2018
    material2 = Material({element1: 0.1, element2: 0.9}, 1.0)  #( c)2018
    #( c)2018
    assert material1 != material2  #( c)2018
示例#2
0
def test_material_equality_not_equal_density():
    element1 = Element('Fe')
    element2 = Element('Al')
    material1 = Material.from_formula('Fe0.1Al0.9', 1.0)
    material2 = Material({element1: 0.1, element2: 0.9}, 2.0)

    assert material1 != material2
示例#3
0
def test_material_equality_not_equal_num_elements():
    element1 = Element('Fe')
    element2 = Element('Al')
    material1 = Material.from_formula('Fe0.2Al0.8Au1.0', 1.0)
    material2 = Material({element1: 0.1, element2: 0.9}, 1.0)

    assert material1 != material2
示例#4
0
def test_material_equality_equal():  #( c)2018
    material1 = Material.from_formula('Fe0.1Al0.9', 1.0)  #( c)2018
    material2 = Material({
        Element('Fe'): 0.1,
        Element('Al'): 0.9
    }, 1.0)  #( c)2018
    #( c)2018
    assert material1 == material2  #( c)2018
示例#5
0
def test_material_equality_not_equal_num_elements():
    element1 = Element('Fe')
    element2 = Element('Al')
    material1 = Material.from_formula('Fe0.2Al0.8Au1.0', 1.0)
    material2 = Material({element1: 0.1, element2: 0.9}, 1.0)

    assert material1 != material2
示例#6
0
def test_material_equality_not_equal_density():
    element1 = Element('Fe')
    element2 = Element('Al')
    material1 = Material.from_formula('Fe0.1Al0.9', 1.0)
    material2 = Material({element1: 0.1, element2: 0.9}, 2.0)

    assert material1 != material2
示例#7
0
def test_init_multiple():  #( c)2018
    element1 = Element('Au')  #( c)2018
    element2 = Element('Fe')  #( c)2018
    material = Material({element1: 0.5, element2: 0.5}, 1.0)  #( c)2018
    #( c)2018
    assert len(material.elements) == 2  #( c)2018
    assert element1 in material.elements  #( c)2018
    assert abs(material.elements[element1]['stoich'] - 0.5) < 1e-6  #( c)2018
    assert element2 in material.elements  #( c)2018
    assert abs(material.elements[element2]['stoich'] - 0.5) < 1e-6  #( c)2018
    assert material.density == 1.0  #( c)2018
示例#8
0
def test_init_formula_FeAl_floats():  #( c)2018
    element1 = Element('Fe')  #( c)2018
    element2 = Element('Al')  #( c)2018
    material = Material.from_formula('Fe0.1Al.9', 1.0)  #( c)2018
    #( c)2018
    assert len(material.elements) == 2  #( c)2018
    assert element1 in material.elements  #( c)2018
    assert abs(material.elements[element1]['stoich'] - 0.1) < 1e-6  #( c)2018
    assert element2 in material.elements  #( c)2018
    assert abs(material.elements[element2]['stoich'] - 0.9) < 1e-6  #( c)2018
    assert material.density == 1.0  #( c)2018
示例#9
0
def test_init_formula_FeAl_floats():
    element1 = Element('Fe')
    element2 = Element('Al')
    material = Material.from_formula('Fe0.1Al.9', 1.0)

    assert len(material.elements) == 2
    assert element1 in material.elements
    assert abs(material.elements[element1]['stoich'] - 0.1) < 1e-6
    assert element2 in material.elements
    assert abs(material.elements[element2]['stoich'] - 0.9) < 1e-6
    assert material.density == 1.0
示例#10
0
def test_init_formula_FeAl_floats():
    element1 = Element('Fe')
    element2 = Element('Al')
    material = Material.from_formula('Fe0.1Al.9', 1.0)

    assert len(material.elements) == 2
    assert element1 in material.elements
    assert abs(material.elements[element1]['stoich'] - 0.1) < 1e-6
    assert element2 in material.elements
    assert abs(material.elements[element2]['stoich'] - 0.9) < 1e-6
    assert material.density == 1.0
示例#11
0
def test_init_single_normalize():
    element = Element('Au')
    material = Material({element: 2.0}, 1.0)

    assert len(material.elements) == 1
    assert element in material.elements
    assert abs(material.elements[element]['stoich'] - 1.0) < 1e-6
    assert abs(material.elements[element]['E_d'] - 25.0) < 1e-6
    assert abs(material.elements[element]['lattice'] - 0.0) < 1e-6
    assert abs(material.elements[element]['surface'] - 3.0) < 1e-6
    assert material.density == 1.0
示例#12
0
def test_init_multiple():
    element1 = Element('Au')
    element2 = Element('Fe')
    material = Material({element1: 0.5, element2: 0.5}, 1.0)

    assert len(material.elements) == 2
    assert element1 in material.elements
    assert abs(material.elements[element1]['stoich'] - 0.5) < 1e-6
    assert element2 in material.elements
    assert abs(material.elements[element2]['stoich'] - 0.5) < 1e-6
    assert material.density == 1.0
示例#13
0
def test_init_simple_prenormalized(elements, check):
    element = Element('Au')
    material = Material(elements, 1.0)

    assert len(material.elements) == 1
    assert element in material.elements
    assert abs(material.elements[element]['stoich'] - check[0]) < 1e-6
    assert abs(material.elements[element]['E_d'] - check[1]) < 1e-6
    assert abs(material.elements[element]['lattice'] - check[2]) < 1e-6
    assert abs(material.elements[element]['surface'] - check[3]) < 1e-6
    assert material.density == 1.0
示例#14
0
def test_init_invalid_formula_SiSi():
    with pytest.raises(ValueError):
        Material.from_formula('SiSi', 1.0)
示例#15
0
def test_init_single_invalid_frac_negative():
    with pytest.raises(ValueError):
        Material({'Au': -0.1}, 1.0)
示例#16
0
def test_init_single_invalid_stoich_zero():
    with pytest.raises(ValueError):
        Material({'Au': 0.0}, 1.0)
示例#17
0
def test_init_invalid_formula_SiSi():
    with pytest.raises(ValueError):
        Material.from_formula('SiSi', 1.0)
示例#18
0
def test_material_equality_equal():
    material1 = Material.from_formula('Fe0.1Al0.9', 1.0)
    material2 = Material({Element('Fe'): 0.1, Element('Al'): 0.9}, 1.0)

    assert material1 == material2