-
Notifications
You must be signed in to change notification settings - Fork 55
Expand file tree
/
Copy pathtestsComponents.py
More file actions
64 lines (54 loc) · 2.5 KB
/
testsComponents.py
File metadata and controls
64 lines (54 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import envtest # modifies path
from raytracing import *
inf = float("+inf")
class Test4fSystem(envtest.RaytracingTestCase):
def test4fSystem(self):
elements = [Space(10), Lens(10), Space(15), Lens(5), Space(5)]
mg = MatrixGroup(elements, label="4f system")
system = System4f(10, 5, label="4f system")
self.assertEqual(system.A, -0.5)
self.assertEqual(system.B, 0)
self.assertEqual(system.C, 0)
self.assertEqual(system.D, -2)
self.assertEqual(system.L, 30)
self.assertEqual(mg.backIndex, system.backIndex)
self.assertEqual(mg.frontIndex, system.frontIndex)
self.assertEqual(mg.backVertex, system.backVertex)
self.assertEqual(mg.frontVertex, system.frontVertex)
self.assertEqual(mg.label, system.label)
self.assertTrue(system.isImaging)
def test2fSystem(self):
elements = [Space(10), Lens(10), Space(10)]
mg = MatrixGroup(elements, label="2f system")
system = System2f(10, label="2f system")
self.assertEqual(system.A, 0)
self.assertEqual(system.B, 10)
self.assertEqual(system.C, -1 / 10)
self.assertEqual(system.D, 0)
self.assertEqual(system.L, 20)
self.assertEqual(mg.backIndex, system.backIndex)
self.assertEqual(mg.frontIndex, system.frontIndex)
self.assertEqual(mg.backVertex, system.backVertex)
self.assertEqual(mg.frontVertex, system.frontVertex)
self.assertEqual(mg.label, system.label)
self.assertFalse(system.isImaging)
def test4fIsTwo2f(self):
f1, f2 = 10, 12
system4f = System4f(f1=10, f2=12)
system2f_1 = System2f(f1)
system2f_2 = System2f(f2)
composed4fSystem = MatrixGroup(system2f_1.elements + system2f_2.elements)
self.assertEqual(composed4fSystem.A, system4f.A)
self.assertEqual(composed4fSystem.B, system4f.B)
self.assertEqual(composed4fSystem.C, system4f.C)
self.assertEqual(composed4fSystem.D, system4f.D)
self.assertEqual(composed4fSystem.L, system4f.L)
self.assertEqual(composed4fSystem.backIndex, system4f.backIndex)
self.assertEqual(composed4fSystem.frontIndex, system4f.frontIndex)
self.assertEqual(composed4fSystem.backVertex, system4f.backVertex)
self.assertEqual(composed4fSystem.frontVertex, system4f.frontVertex)
def testTelescopeIsAfocal(self):
system = System4f(10, 5)
self.assertTrue(system.isAfocal)
if __name__ == '__main__':
envtest.main()