summaryrefslogtreecommitdiff
path: root/CSXCAD/python/tests/test_CSRectGrid.py
diff options
context:
space:
mode:
Diffstat (limited to 'CSXCAD/python/tests/test_CSRectGrid.py')
-rw-r--r--CSXCAD/python/tests/test_CSRectGrid.py73
1 files changed, 73 insertions, 0 deletions
diff --git a/CSXCAD/python/tests/test_CSRectGrid.py b/CSXCAD/python/tests/test_CSRectGrid.py
new file mode 100644
index 0000000..ddefb9a
--- /dev/null
+++ b/CSXCAD/python/tests/test_CSRectGrid.py
@@ -0,0 +1,73 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Sat Dec 12 22:04:58 2015
+
+@author: thorsten
+"""
+
+import numpy as np
+
+from CSXCAD import CSRectGrid
+
+import unittest
+
+class Test_CSRectGrid(unittest.TestCase):
+ def test_rect_grid(self):
+
+ grid = CSRectGrid.CSRectGrid(CoordSystem=0)
+
+ self.assertEqual( grid.GetMeshType(), 0 )
+
+ grid.SetMeshType(1)
+ self.assertEqual( grid.GetMeshType(), 1 )
+
+ grid.SetLines('x', [0, 1, 2])
+ grid.SetLines('y', [-2,0, 1])
+ self.assertEqual( grid.GetQtyLines('y'), 3 )
+ grid.AddLine('y',4)
+ self.assertEqual( grid.GetQtyLines('y'), 4 )
+ grid.AddLine('y',[4, 2, 5])
+ self.assertEqual( grid.GetQtyLines('y'), 7 )
+ self.assertTrue( (grid.GetLines('y')==np.array([-2., 0., 1., 4., 4., 2., 5.])).all() ) # check unsorted lines
+ grid.Sort('y')
+ self.assertTrue( (grid.GetLines('y')==np.array([-2., 0., 1., 2., 4., 5.])).all() )
+ self.assertEqual( grid.GetQtyLines('y'), 6 )
+
+ grid.SetLines('z', [10, 11, 12])
+
+ self.assertEqual( grid.GetLine('y', 1), 0.0 )
+
+ self.assertEqual( grid.GetQtyLines('x'), 3 )
+
+ grid.SetDeltaUnit(1e-3)
+ self.assertEqual( grid.GetDeltaUnit(), 1e-3 )
+
+ self.assertTrue( grid.IsValid() )
+
+ # check grid snapping
+ self.assertEqual( grid.Snap2LineNumber('y', 1), (2,True) )
+ self.assertEqual( grid.Snap2LineNumber('y', 1.1), (2,True) )
+ self.assertEqual( grid.Snap2LineNumber('y', 1.5), (3,True) )
+ self.assertEqual( grid.Snap2LineNumber('y', 1.6), (3,True) )
+ self.assertEqual( grid.Snap2LineNumber('y', 5.0), (5,True) )
+ self.assertEqual( grid.Snap2LineNumber('y', 5.01), (5,False) )
+
+ self.assertEqual( grid.Snap2LineNumber('y', -2.0), (0,True) )
+ self.assertEqual( grid.Snap2LineNumber('y', -2.01), (0,False) )
+
+ self.assertTrue( (grid.GetSimArea() == np.array([[0, -2, 10],[2, 5, 12]])).all() )
+
+ grid.ClearLines('x')
+ self.assertEqual( grid.GetQtyLines('x'), 0 )
+ self.assertEqual( grid.GetQtyLines('y'), 6 )
+ self.assertEqual( grid.GetQtyLines('z'), 3 )
+
+ self.assertFalse( grid.IsValid() )
+
+ grid.Clear()
+ self.assertEqual( grid.GetQtyLines('y'), 0 )
+
+ self.assertFalse( grid.IsValid() )
+
+if __name__ == '__main__':
+ unittest.main() \ No newline at end of file