@@ -33,6 +33,27 @@ def test_append():
3333 a .append ("not a vec3" )
3434
3535
36+ def test_get_array ():
37+ """Test the get_array method"""
38+ a = Vec3Array ([Vec3 (1 , 2 , 3 ), Vec3 (4 , 5 , 6 )])
39+ arr = a .get_array ()
40+ assert len (arr ) == 2
41+ assert np .equal (arr [0 ], np .array ([1.0 , 2.0 , 3.0 ])).all ()
42+ assert np .equal (arr [1 ], np .array ([4.0 , 5.0 , 6.0 ])).all ()
43+
44+
45+ def test_setitem ():
46+ """Test the __setitem__ method"""
47+ a = Vec3Array ([Vec3 (1 , 2 , 3 ), Vec3 (4 , 5 , 6 )])
48+ v = Vec3 (7 , 8 , 9 )
49+ a [1 ] = v
50+ assert len (a ) == 2
51+ assert a [0 ] == Vec3 (1 , 2 , 3 )
52+ assert a [1 ] == v
53+ with pytest .raises (TypeError ):
54+ a [1 ] = "not a vec3"
55+
56+
3657def test_getitem ():
3758 """Test the __getitem__ method"""
3859 v = [Vec3 (1 , 2 , 3 ), Vec3 (4 , 5 , 6 )]
@@ -94,6 +115,18 @@ def test_extend():
94115 a .extend (["not a vec3" ])
95116
96117
118+ def test_extend_existing ():
119+ """Test the extend method with existing array"""
120+ a = Vec3Array ([Vec3 (1 , 2 , 3 ), Vec3 (4 , 5 , 6 )])
121+ v = [Vec3 (7 , 8 , 9 ), Vec3 (10 , 11 , 12 )]
122+ a .extend (v )
123+ assert len (a ) == 4
124+ assert a [2 ] == Vec3 (7 , 8 , 9 )
125+ assert a [3 ] == Vec3 (10 , 11 , 12 )
126+ with pytest .raises (TypeError ):
127+ a .extend (["not a vec3" ])
128+
129+
97130def test_repr ():
98131 a = Vec3Array ([Vec3 (1 , 2 , 3 )])
99132 assert repr (a ) == "Vec3Array([Vec3 [1.0,2.0,3.0]])"
@@ -130,3 +163,24 @@ def test_setitem():
130163 # Test index out of range
131164 with pytest .raises (IndexError ):
132165 a [2 ] = Vec3 ()
166+
167+
168+ def test_eq ():
169+ """Test the __eq__ method"""
170+ a = Vec3Array ([Vec3 (1 , 2 , 3 ), Vec3 (4 , 5 , 6 )])
171+ b = Vec3Array ([Vec3 (1 , 2 , 3 ), Vec3 (4 , 5 , 6 )])
172+ assert a == b
173+ c = Vec3Array ([Vec3 (1 , 2 , 3 ), Vec3 (4 , 5 , 7 )])
174+ assert a != c
175+ assert a .__eq__ (1 ) == NotImplemented
176+
177+
178+ def test_slice ():
179+ """Test the __getitem__ method with slice"""
180+ v = [Vec3 (1 , 2 , 3 ), Vec3 (5 , 6 , 7 ), Vec3 (9 , 10 , 11 )]
181+ a = Vec3Array (v )
182+ assert a [0 :2 ] == Vec3Array ([Vec3 (1 , 2 , 3 ), Vec3 (5 , 6 , 7 )])
183+ assert a [1 :] == Vec3Array ([Vec3 (5 , 6 , 7 ), Vec3 (9 , 10 , 11 )])
184+ assert a [:] == Vec3Array (v )
185+ with pytest .raises (IndexError ):
186+ _ = a [3 ]
0 commit comments