Skip to content

Commit 36b9d7b

Browse files
author
Dennis Schridde
committed
Matrix: Much more extensive tests of :segment[]
Should be compatible with basic (__call and :set()) and enhanced (__index and __newindex) syntax
1 parent 813ad86 commit 36b9d7b

File tree

1 file changed

+152
-20
lines changed

1 file changed

+152
-20
lines changed

Diff for: test/test-segment.lua

+152-20
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,154 @@
11
local eigen = require "eigen"
22

3-
local v = eigen.VectorXf(4)
4-
for i=1,4 do v[i] = i end
5-
print(v)
6-
assert(v[1] == 1, "v[1] == 1")
7-
assert(v[2] == 2, "v[2] == 2")
8-
9-
local s_1 = v.segment2[1]
10-
print(s_1)
11-
assert(s_1[1] == 1, "s_1[1] == 1")
12-
assert(s_1[2] == 2, "s_1[2] == 2")
13-
14-
v.segment2[1] = eigen.Vector2f(5, 6)
15-
print(v)
16-
assert(v[1] == 5, "v[1] == 5")
17-
assert(v[2] == 6, "v[2] == 6")
18-
19-
local s_2 = v.segment2[1]
20-
print(s_2)
21-
assert(s_2[1] == 5, "s_2[1] == 5")
22-
assert(s_2[2] == 6, "s_2[2] == 6")
3+
print("segment2")
4+
5+
local v1 = eigen.VectorXf(4)
6+
for i=1,4 do v1:set(i, i) end
7+
print(v1)
8+
assert(v1(1) == 1, "v1(1) == 1")
9+
assert(v1(2) == 2, "v1(2) == 2")
10+
assert(v1(3) == 3, "v1(3) == 3")
11+
assert(v1(4) == 4, "v1(4) == 4")
12+
13+
local s2_1 = v1.segment2[1]
14+
print(s2_1)
15+
assert(s2_1(1) == 1, "s2_1(1) == 1")
16+
assert(s2_1(2) == 2, "s2_1(2) == 2")
17+
18+
local s2_3 = v1.segment2[3]
19+
print(s2_3)
20+
assert(s2_3(1) == 3, "s2_3(1) == 3")
21+
assert(s2_3(2) == 4, "s2_3(2) == 4")
22+
23+
v1.segment2[1] = eigen.Vector2f(5, 6)
24+
print(v1)
25+
assert(v1(1) == 5, "v1(1) == 5")
26+
assert(v1(2) == 6, "v1(2) == 6")
27+
assert(v1(3) == 3, "v1(3) == 3")
28+
assert(v1(4) == 4, "v1(4) == 4")
29+
30+
v1.segment2[3] = eigen.Vector2f(7, 8)
31+
print(v1)
32+
assert(v1(1) == 5, "v1(1) == 5")
33+
assert(v1(2) == 6, "v1(2) == 6")
34+
assert(v1(3) == 7, "v1(3) == 7")
35+
assert(v1(4) == 8, "v1(4) == 8")
36+
37+
local s2_1_2 = v1.segment2[1]
38+
print(s2_1_2)
39+
assert(s2_1_2(1) == 5, "s2_1_2(1) == 5")
40+
assert(s2_1_2(2) == 6, "s2_1_2(2) == 6")
41+
42+
local s2_3_2 = v1.segment2[3]
43+
print(s2_3_2)
44+
assert(s2_3_2(1) == 7, "s2_3_2(1) == 7")
45+
assert(s2_3_2(2) == 8, "s2_3_2(2) == 8")
46+
47+
print("segment3")
48+
49+
local v2 = eigen.VectorXf(6)
50+
for i=1,6 do v2:set(i, i) end
51+
print("v2", v2)
52+
assert(v2(2) == 2, "v2(2) == 2")
53+
assert(v2(3) == 3, "v2(3) == 3")
54+
assert(v2(4) == 4, "v2(4) == 4")
55+
assert(v2(5) == 5, "v2(5) == 5")
56+
assert(v2(6) == 6, "v2(6) == 6")
57+
58+
local s3_1 = v2.segment3[1]
59+
print("segment3[1]", s3_1)
60+
assert(s3_1(1) == 1, "s3_1(1) == 1")
61+
assert(s3_1(2) == 2, "s3_1(2) == 2")
62+
assert(s3_1(3) == 3, "s3_1(3) == 3")
63+
64+
local s3_4 = v2.segment3[4]
65+
print("segment3[4]", s3_4)
66+
assert(s3_4(1) == 4, "s3_4(1) == 4")
67+
assert(s3_4(2) == 5, "s3_4(2) == 5")
68+
assert(s3_4(3) == 6, "s3_4(3) == 6")
69+
70+
v2.segment3[1] = eigen.Vector3f(5, 6, 7)
71+
print("v2", v2)
72+
assert(v2(1) == 5, "v2(1) == 5")
73+
assert(v2(2) == 6, "v2(2) == 6")
74+
assert(v2(3) == 7, "v2(3) == 7")
75+
assert(v2(4) == 4, "v2(4) == 4")
76+
assert(v2(5) == 5, "v2(5) == 5")
77+
assert(v2(6) == 6, "v2(6) == 6")
78+
79+
v2.segment3[4] = eigen.Vector3f(8, 9, 10)
80+
print("v2", v2)
81+
assert(v2(1) == 5, "v2(1) == 5")
82+
assert(v2(2) == 6, "v2(2) == 6")
83+
assert(v2(3) == 7, "v2(3) == 7")
84+
assert(v2(4) == 8, "v2(4) == 8")
85+
assert(v2(5) == 9, "v2(5) == 9")
86+
assert(v2(6) == 10, "v2(6) == 10")
87+
88+
local s3_1_2 = v2.segment3[1]
89+
print("segment3[1]", s3_1_2)
90+
assert(s3_1_2(1) == 5, "s3_1_2(1) == 5")
91+
assert(s3_1_2(2) == 6, "s3_1_2(2) == 6")
92+
assert(s3_1_2(3) == 7, "s3_1_2(3) == 7")
93+
94+
local s3_3_2 = v2.segment3[4]
95+
print("segment3[4]", s3_3_2)
96+
assert(s3_3_2(1) == 8, "s3_3_2(1) == 8")
97+
assert(s3_3_2(2) == 9, "s3_3_2(2) == 9")
98+
assert(s3_3_2(3) == 10, "s3_3_2(3) == 10")
99+
100+
print("segment3 - second")
101+
102+
local v3 = eigen.VectorXf(6)
103+
for i=1,6 do v3:set(i, i) end
104+
print("v3",v3)
105+
assert(v3(1) == 1, "v3(1) == 1")
106+
assert(v3(2) == 2, "v3(2) == 2")
107+
assert(v3(3) == 3, "v3(3) == 3")
108+
assert(v3(4) == 4, "v3(4) == 4")
109+
assert(v3(5) == 5, "v3(5) == 5")
110+
assert(v3(6) == 6, "v3(6) == 6")
111+
112+
v3.segment3[1] = eigen.Vector3f(11, 12, 13)
113+
print("v3", v3)
114+
assert(v3(1) == 11, "v3(1) == 11")
115+
assert(v3(2) == 12, "v3(2) == 12")
116+
assert(v3(3) == 13, "v3(3) == 13")
117+
assert(v3(4) == 4, "v3(4) == 4")
118+
assert(v3(5) == 5, "v3(5) == 5")
119+
assert(v3(6) == 6, "v3(6) == 6")
120+
121+
v3.segment3[4] = eigen.Vector3f(14, 15, 16)
122+
print("v3", v3)
123+
assert(v3(1) == 11, "v3(1) == 11")
124+
assert(v3(2) == 12, "v3(2) == 12")
125+
assert(v3(3) == 13, "v3(3) == 13")
126+
assert(v3(4) == 14, "v3(4) == 14")
127+
assert(v3(5) == 15, "v3(5) == 15")
128+
assert(v3(6) == 16, "v3(6) == 16")
129+
130+
print("segment3 - check first again")
131+
132+
print("v2", v2)
133+
assert(v2(1) == 5, "v2(1) == 5")
134+
assert(v2(2) == 6, "v2(2) == 6")
135+
assert(v2(3) == 7, "v2(3) == 7")
136+
assert(v2(4) == 8, "v2(4) == 8")
137+
assert(v2(5) == 9, "v2(5) == 9")
138+
assert(v2(6) == 10, "v2(6) == 10")
139+
140+
v2.segment3[1] = eigen.Vector3f(17, 18, 19)
141+
print("v2/v3", v2, v3)
142+
assert(v2(1) == 17, "v2(1) == 17")
143+
assert(v2(2) == 18, "v2(2) == 18")
144+
assert(v2(3) == 19, "v2(3) == 19")
145+
assert(v2(4) == 8, "v2(4) == 8")
146+
assert(v2(5) == 9, "v2(5) == 9")
147+
assert(v2(6) == 10, "v2(6) == 10")
148+
149+
assert(v3(1) == 11, "v3(1) == 11")
150+
assert(v3(2) == 12, "v3(2) == 12")
151+
assert(v3(3) == 13, "v3(3) == 13")
152+
assert(v3(4) == 14, "v3(4) == 14")
153+
assert(v3(5) == 15, "v3(5) == 15")
154+
assert(v3(6) == 16, "v3(6) == 16")

0 commit comments

Comments
 (0)