def test_UnitCell_init(): from numpy import pi unitcell = UnitCell() assert unitcell.cell == (1, 1, 1, 90, 90, 90) assert unitcell.reciprocalCell == (1, 1, 1, 90, 90, 90) assert unitcell.d(1, 0, 0) == 1 assert unitcell.dstar(1, 0, 0) == 1 assert unitcell.recAngle(1, 0, 0, 1, 0, 0) == 0 assert unitcell.recAngle(1, 0, 0, 0, 1, 0, degrees=True) == 90 assert_almost_equal(unitcell.recAngle(0, 1, 0, 0, 1, 1), pi/4) assert_almost_equal(unitcell.recAngle(0, 1, 0, 0, 1, 1, degrees=True), 45) assert unitcell.volume == 1 assert unitcell.reciprocalVolume == 1 assert_array_equal(unitcell.G, [[1, 0, 0], [0, 1, 0], [0, 0, 1]]) assert_array_equal(unitcell.B, [[1, 0, 0], [0, 1, 0], [0, 0, 1]]) assert_array_equal(unitcell.Binv, [[1, 0, 0], [0, 1, 0], [0, 0, 1]]) unitcell = UnitCell(5) assert unitcell.cell == (5, 5, 5, 90, 90, 90) assert_array_almost_equal(unitcell.reciprocalCell, (0.2, 0.2, 0.2, 90, 90, 90)) assert_almost_equal(unitcell.volume, 125) assert_almost_equal(unitcell.reciprocalVolume, 0.008) assert_array_almost_equal(unitcell.G, [[25, 0, 0], [0, 25, 0], [0, 0, 25]]) assert_array_almost_equal(unitcell.B, [[0.2, 0, 0], [0, 0.2, 0], [0, 0, 0.2]]) assert_array_almost_equal(unitcell.Binv, [[5, 0, 0], [0, 5, 0], [0, 0, 5]]) unitcell = UnitCell(1, 2, 3) assert unitcell.cell == (1, 2, 3, 90, 90, 90) assert_array_almost_equal(unitcell.reciprocalCell, (1, 0.5, 0.333333, 90, 90, 90)) assert unitcell.volume == 6 assert_almost_equal(unitcell.reciprocalVolume, 0.1666667) assert_array_almost_equal(unitcell.G, [[1, 0, 0], [0, 4, 0], [0, 0, 9]]) unitcell = UnitCell(4, 5, 6, 90, 90, 120) assert unitcell.d(1, 0, 0) == 3.4641016151377548 assert unitcell.d(0, 1, 0) == 4.3301270189221936 assert unitcell.d(0, 0, 1) == 6 assert_almost_equal(unitcell.recAngle(1, 0, 0, 1, 0, 0), 0) assert_almost_equal(unitcell.recAngle(1, 0, 0, 1, 0, 0, degrees=True), 0, decimal=5) assert_almost_equal(unitcell.recAngle(1, 0, 0, 0, 1, 0), pi/3) assert_almost_equal(unitcell.recAngle(1, 0, 0, 0, 1, 0, degrees=True), 60) assert_almost_equal(unitcell.recAngle(1, 0, 0, 0, 0, 1), pi/2) assert_almost_equal(unitcell.recAngle(1, 0, 0, 0, 0, 1, degrees=True), 90) assert_array_almost_equal(unitcell.cell, (4, 5, 6, 90, 90, 120)) assert_array_almost_equal(unitcell.reciprocalCell, (0.288675, 0.2309401, 0.1666667, 90, 90, 60)) assert_almost_equal(unitcell.volume, 103.9230485) assert_almost_equal(unitcell.reciprocalVolume, 0.0096225) assert_array_almost_equal(unitcell.G, [[16, -10, 0], [-10, 25, 0], [0, 0, 36]]) assert_array_almost_equal(unitcell.B, [[0.288675, 0.11547, 0], [0, 0.2, 0], [0, 0, 0.166667]]) assert_array_almost_equal(unitcell.Binv, [[3.464101, -2, 0], [0, 5, 0], [0, 0, 6]]) assert_array_almost_equal(unitcell.cartesian([1, 0, 0]), [[3.464102, -2, 0]]) assert_array_almost_equal(unitcell.cartesian([[1, 0, 0], [0.1, 0.3, 0.5]]), [[3.464102, -2, 0], [0.34641, 1.3, 3]]) assert_array_almost_equal(unitcell.fractional([3.464102, -2, 0]), [[1, 0, 0]]) assert_array_almost_equal(unitcell.fractional([[0, 5, 0], [0, 0, 3]]), [[0, 1, 0], [0, 0, 0.5]]) # test __eq__ assert unitcell != UnitCell() assert unitcell != UnitCell(5) assert unitcell == UnitCell(4, 5, 6, 90, 90, 120) assert unitcell != UnitCell(6, 5, 4, 120, 90, 90) unitcell = UnitCell([5, 6, 7, 89, 92, 121]) assert unitcell.cell == (5, 6, 7, 89, 92, 121) assert_array_almost_equal(unitcell.reciprocalCell, (0.233433, 0.194439, 0.142944, 89.965076, 88.267509, 59.014511)) assert_almost_equal(unitcell.volume, 179.8954455) assert_almost_equal(unitcell.reciprocalVolume, 0.0055587844) assert_array_almost_equal(unitcell.G, [[25, -15.45114225, -1.22148238], [-15.45114225, 36, 0.73300107], [-1.22148238, 0.73300107, 49]]) # Test __str__ assert str(unitcell) == '(5.0, 6.0, 7.0, 89.0, 92.0, 121.0)'
def test_UnitCell_init(): from numpy import pi unitcell = UnitCell() assert unitcell.cell == (1, 1, 1, 90, 90, 90) assert unitcell.reciprocalCell == (1, 1, 1, 90, 90, 90) assert unitcell.d(1, 0, 0) == 1 assert unitcell.dstar(1, 0, 0) == 1 assert unitcell.recAngle(1, 0, 0, 1, 0, 0) == 0 assert unitcell.recAngle(1, 0, 0, 0, 1, 0, degrees=True) == 90 assert_almost_equal(unitcell.recAngle(0, 1, 0, 0, 1, 1), pi / 4) assert_almost_equal(unitcell.recAngle(0, 1, 0, 0, 1, 1, degrees=True), 45) assert unitcell.volume == 1 assert unitcell.reciprocalVolume == 1 assert_array_equal(unitcell.G, [[1, 0, 0], [0, 1, 0], [0, 0, 1]]) assert_array_equal(unitcell.B, [[1, 0, 0], [0, 1, 0], [0, 0, 1]]) assert_array_equal(unitcell.Binv, [[1, 0, 0], [0, 1, 0], [0, 0, 1]]) unitcell = UnitCell(5) assert unitcell.cell == (5, 5, 5, 90, 90, 90) assert_array_almost_equal(unitcell.reciprocalCell, (0.2, 0.2, 0.2, 90, 90, 90)) assert_almost_equal(unitcell.volume, 125) assert_almost_equal(unitcell.reciprocalVolume, 0.008) assert_array_almost_equal(unitcell.G, [[25, 0, 0], [0, 25, 0], [0, 0, 25]]) assert_array_almost_equal(unitcell.B, [[0.2, 0, 0], [0, 0.2, 0], [0, 0, 0.2]]) assert_array_almost_equal(unitcell.Binv, [[5, 0, 0], [0, 5, 0], [0, 0, 5]]) unitcell = UnitCell(1, 2, 3) assert unitcell.cell == (1, 2, 3, 90, 90, 90) assert_array_almost_equal(unitcell.reciprocalCell, (1, 0.5, 0.333333, 90, 90, 90)) assert unitcell.volume == 6 assert_almost_equal(unitcell.reciprocalVolume, 0.1666667) assert_array_almost_equal(unitcell.G, [[1, 0, 0], [0, 4, 0], [0, 0, 9]]) unitcell = UnitCell(4, 5, 6, 90, 90, 120) assert unitcell.d(1, 0, 0) == 3.4641016151377548 assert unitcell.d(0, 1, 0) == 4.3301270189221936 assert unitcell.d(0, 0, 1) == 6 assert_almost_equal(unitcell.recAngle(1, 0, 0, 1, 0, 0), 0) assert_almost_equal(unitcell.recAngle(1, 0, 0, 1, 0, 0, degrees=True), 0, decimal=5) assert_almost_equal(unitcell.recAngle(1, 0, 0, 0, 1, 0), pi / 3) assert_almost_equal(unitcell.recAngle(1, 0, 0, 0, 1, 0, degrees=True), 60) assert_almost_equal(unitcell.recAngle(1, 0, 0, 0, 0, 1), pi / 2) assert_almost_equal(unitcell.recAngle(1, 0, 0, 0, 0, 1, degrees=True), 90) assert_array_almost_equal(unitcell.cell, (4, 5, 6, 90, 90, 120)) assert_array_almost_equal(unitcell.reciprocalCell, (0.288675, 0.2309401, 0.1666667, 90, 90, 60)) assert_almost_equal(unitcell.volume, 103.9230485) assert_almost_equal(unitcell.reciprocalVolume, 0.0096225) assert_array_almost_equal(unitcell.G, [[16, -10, 0], [-10, 25, 0], [0, 0, 36]]) assert_array_almost_equal( unitcell.B, [[0.288675, 0.11547, 0], [0, 0.2, 0], [0, 0, 0.166667]]) assert_array_almost_equal(unitcell.Binv, [[3.464101, -2, 0], [0, 5, 0], [0, 0, 6]]) assert_array_almost_equal(unitcell.cartesian([1, 0, 0]), [[3.464102, -2, 0]]) assert_array_almost_equal(unitcell.cartesian([[1, 0, 0], [0.1, 0.3, 0.5]]), [[3.464102, -2, 0], [0.34641, 1.3, 3]]) assert_array_almost_equal(unitcell.fractional([3.464102, -2, 0]), [[1, 0, 0]]) assert_array_almost_equal(unitcell.fractional([[0, 5, 0], [0, 0, 3]]), [[0, 1, 0], [0, 0, 0.5]]) # test __eq__ assert unitcell != UnitCell() assert unitcell != UnitCell(5) assert unitcell == UnitCell(4, 5, 6, 90, 90, 120) assert unitcell != UnitCell(6, 5, 4, 120, 90, 90) unitcell = UnitCell([5, 6, 7, 89, 92, 121]) assert unitcell.cell == (5, 6, 7, 89, 92, 121) assert_array_almost_equal( unitcell.reciprocalCell, (0.233433, 0.194439, 0.142944, 89.965076, 88.267509, 59.014511)) assert_almost_equal(unitcell.volume, 179.8954455) assert_almost_equal(unitcell.reciprocalVolume, 0.0055587844) assert_array_almost_equal( unitcell.G, [[25, -15.45114225, -1.22148238], [-15.45114225, 36, 0.73300107], [-1.22148238, 0.73300107, 49]]) # Test __str__ assert str(unitcell) == '(5.0, 6.0, 7.0, 89.0, 92.0, 121.0)'