@@ -111,3 +111,108 @@ def test_array_sum() -> None:
111
111
assert res [0 ].scalar () == 2
112
112
assert res [1 ].scalar () == 3
113
113
assert res [2 ].scalar () == 4
114
+
115
+ res = array + 1.5
116
+ assert res [0 ].scalar () == 2.5
117
+ assert res [1 ].scalar () == 3.5
118
+ assert res [2 ].scalar () == 4.5
119
+
120
+ res = array + Array ([9 , 9 , 9 ])
121
+ assert res [0 ].scalar () == 10
122
+ assert res [1 ].scalar () == 11
123
+ assert res [2 ].scalar () == 12
124
+
125
+
126
+ def test_array_sub () -> None :
127
+ array = Array ([1 , 2 , 3 ])
128
+ res = array - 1
129
+ assert res [0 ].scalar () == 0
130
+ assert res [1 ].scalar () == 1
131
+ assert res [2 ].scalar () == 2
132
+
133
+ res = array - 1.5
134
+ assert res [0 ].scalar () == - 0.5
135
+ assert res [1 ].scalar () == 0.5
136
+ assert res [2 ].scalar () == 1.5
137
+
138
+ res = array - Array ([9 , 9 , 9 ])
139
+ assert res [0 ].scalar () == - 8
140
+ assert res [1 ].scalar () == - 7
141
+ assert res [2 ].scalar () == - 6
142
+
143
+
144
+ def test_array_mul () -> None :
145
+ array = Array ([1 , 2 , 3 ])
146
+ res = array * 2
147
+ assert res [0 ].scalar () == 2
148
+ assert res [1 ].scalar () == 4
149
+ assert res [2 ].scalar () == 6
150
+
151
+ res = array * 1.5
152
+ assert res [0 ].scalar () == 1.5
153
+ assert res [1 ].scalar () == 3
154
+ assert res [2 ].scalar () == 4.5
155
+
156
+ res = array * Array ([9 , 9 , 9 ])
157
+ assert res [0 ].scalar () == 9
158
+ assert res [1 ].scalar () == 18
159
+ assert res [2 ].scalar () == 27
160
+
161
+
162
+ def test_array_truediv () -> None :
163
+ array = Array ([1 , 2 , 3 ])
164
+ res = array / 2
165
+ assert res [0 ].scalar () == 0.5
166
+ assert res [1 ].scalar () == 1
167
+ assert res [2 ].scalar () == 1.5
168
+
169
+ res = array / 1.5
170
+ assert round (res [0 ].scalar (), 5 ) == 0.66667 # type: ignore[arg-type]
171
+ assert round (res [1 ].scalar (), 5 ) == 1.33333 # type: ignore[arg-type]
172
+ assert res [2 ].scalar () == 2
173
+
174
+ res = array / Array ([2 , 2 , 2 ])
175
+ assert res [0 ].scalar () == 0.5
176
+ assert res [1 ].scalar () == 1
177
+ assert res [2 ].scalar () == 1.5
178
+
179
+
180
+ def test_array_floordiv () -> None :
181
+ # TODO add test after implementation of __floordiv__
182
+ pass
183
+
184
+
185
+ def test_array_mod () -> None :
186
+ array = Array ([1 , 2 , 3 ])
187
+ res = array % 2
188
+ assert res [0 ].scalar () == 1
189
+ assert res [1 ].scalar () == 0
190
+ assert res [2 ].scalar () == 1
191
+
192
+ res = array % 1.5
193
+ assert res [0 ].scalar () == 1.0
194
+ assert res [1 ].scalar () == 0.5
195
+ assert res [2 ].scalar () == 0.0
196
+
197
+ res = array % Array ([9 , 9 , 9 ])
198
+ assert res [0 ].scalar () == 1.0
199
+ assert res [1 ].scalar () == 2.0
200
+ assert res [2 ].scalar () == 3.0
201
+
202
+
203
+ def test_array_pow () -> None :
204
+ array = Array ([1 , 2 , 3 ])
205
+ res = array ** 2
206
+ assert res [0 ].scalar () == 1
207
+ assert res [1 ].scalar () == 4
208
+ assert res [2 ].scalar () == 9
209
+
210
+ res = array ** 1.5
211
+ assert res [0 ].scalar () == 1
212
+ assert round (res [1 ].scalar (), 5 ) == 2.82843 # type: ignore[arg-type]
213
+ assert round (res [2 ].scalar (), 5 ) == 5.19615 # type: ignore[arg-type]
214
+
215
+ res = array ** Array ([9 , 9 , 9 ])
216
+ assert res [0 ].scalar () == 1
217
+ assert res [1 ].scalar () == 512
218
+ assert res [2 ].scalar () == 19683
0 commit comments