mirror of
https://github.com/gwm17/catima.git
synced 2024-11-22 18:28:51 -05:00
91 lines
2.9 KiB
Python
91 lines
2.9 KiB
Python
|
import sys
|
||
|
sys.path.insert(0,"../build")
|
||
|
import unittest
|
||
|
import catima
|
||
|
|
||
|
class TestStructures(unittest.TestCase):
|
||
|
|
||
|
def test_Projectile(self):
|
||
|
p = catima.Projectile(238,92)
|
||
|
self.assertEqual(p.A(),238)
|
||
|
self.assertEqual(p.Z(),92)
|
||
|
self.assertEqual(p.Q(),92)
|
||
|
|
||
|
p = catima.Projectile(238,92,90)
|
||
|
self.assertEqual(p.A(),238)
|
||
|
self.assertEqual(p.Z(),92)
|
||
|
self.assertEqual(p.Q(),90)
|
||
|
p.T(1000)
|
||
|
self.assertEqual(p.T(),1000)
|
||
|
self.assertEqual(p(),1000)
|
||
|
p(500)
|
||
|
self.assertEqual(p.T(),500)
|
||
|
self.assertEqual(p(),500)
|
||
|
|
||
|
p = catima.Projectile(238,92,90, T=100)
|
||
|
self.assertEqual(p.T(),100)
|
||
|
|
||
|
def test_Material(self):
|
||
|
mat = catima.Material()
|
||
|
mat.add_element(12,6,1)
|
||
|
self.assertEqual(mat.ncomponents(),1)
|
||
|
mat.add_element(1,1,2)
|
||
|
self.assertEqual(mat.ncomponents(),2)
|
||
|
|
||
|
mat2 = catima.Material([12.01,6,1])
|
||
|
self.assertEqual(mat2.ncomponents(),1)
|
||
|
self.assertEqual(mat2.molar_mass(),12.01)
|
||
|
|
||
|
mat3 = catima.Material([12,6,1])
|
||
|
self.assertEqual(mat3.ncomponents(),1)
|
||
|
self.assertEqual(mat3.molar_mass(),12)
|
||
|
|
||
|
water = catima.Material([[1,1,2],[16,8,1]])
|
||
|
self.assertEqual(water.molar_mass(),18)
|
||
|
|
||
|
mat2 = catima.Material([0,6,1])
|
||
|
self.assertEqual(mat2.ncomponents(),1)
|
||
|
self.assertAlmostEqual(mat2.molar_mass(),12,1)
|
||
|
|
||
|
def test_default_material(self):
|
||
|
m1 = catima.get_material(6);
|
||
|
self.assertAlmostEqual(m1.molar_mass(),12,1)
|
||
|
self.assertEqual(m1.ncomponents(),1)
|
||
|
self.assertAlmostEqual(m1.density(),2.0,1)
|
||
|
|
||
|
m2 = catima.get_material(catima.material.WATER)
|
||
|
self.assertEqual(m2.ncomponents(),2)
|
||
|
self.assertAlmostEqual(m2.molar_mass(),18,1)
|
||
|
self.assertAlmostEqual(m2.density(),1.0,1)
|
||
|
|
||
|
def test_layers(self):
|
||
|
graphite = catima.get_material(6);
|
||
|
graphite.thickness(0.5)
|
||
|
p10 = catima.get_material(catima.material.P10);
|
||
|
p10.thickness(0.01)
|
||
|
|
||
|
mat= catima.Layers()
|
||
|
self.assertEqual(mat.num(),0)
|
||
|
mat.add(graphite)
|
||
|
self.assertEqual(mat.num(),1)
|
||
|
self.assertAlmostEqual(mat[0].molar_mass(),12,1)
|
||
|
self.assertAlmostEqual(mat[0].thickness(),0.5,1)
|
||
|
self.assertAlmostEqual(mat[0].density(),2.0,1)
|
||
|
|
||
|
mat.add(p10)
|
||
|
self.assertEqual(mat.num(),2)
|
||
|
|
||
|
graphite.thickness(1.0)
|
||
|
graphite.density(1.8)
|
||
|
mat.add(graphite)
|
||
|
self.assertEqual(mat.num(),3)
|
||
|
self.assertAlmostEqual(mat[2].molar_mass(),12,1)
|
||
|
self.assertAlmostEqual(mat[0].thickness(),0.5,1)
|
||
|
self.assertAlmostEqual(mat[0].density(),2.0,1)
|
||
|
self.assertAlmostEqual(mat[2].thickness(),1.0,1)
|
||
|
self.assertAlmostEqual(mat[2].density(),1.8,1)
|
||
|
self.assertEqual(mat[3],None)
|
||
|
self.assertEqual(mat["a"],None)
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
unittest.main()
|