nepali 0.5.5__py3-none-any.whl → 1.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. nepali/__init__.py +1 -1
  2. nepali/char.py +102 -81
  3. nepali/constants.py +66 -0
  4. nepali/date_converter.py +334 -0
  5. nepali/datetime/__init__.py +13 -14
  6. nepali/datetime/_datetime.py +391 -402
  7. nepali/datetime/_formatter.py +325 -0
  8. nepali/datetime/_humanize.py +117 -132
  9. nepali/datetime/_nepalimonth.py +118 -0
  10. nepali/datetime/_nepaliweek.py +125 -0
  11. nepali/datetime/parser/__init__.py +4 -4
  12. nepali/datetime/parser/_parser.py +59 -50
  13. nepali/datetime/parser/validators.py +249 -159
  14. nepali/datetime/utils.py +38 -0
  15. nepali/exceptions.py +8 -3
  16. nepali/locations/__init__.py +3 -0
  17. nepali/locations/_data.py +4271 -0
  18. nepali/locations/_locations.py +38 -0
  19. nepali/locations/models.py +104 -0
  20. nepali/locations/utils.py +54 -0
  21. nepali/number/__init__.py +19 -0
  22. nepali/number/_nepalinumber.py +563 -0
  23. nepali/number/_number.py +53 -0
  24. nepali/number/utils.py +72 -0
  25. nepali/phone_number.py +183 -0
  26. nepali/templatetags/__init__.py +0 -0
  27. nepali/templatetags/nepalidatetime.py +194 -24
  28. nepali/templatetags/nepalinumber.py +97 -7
  29. nepali/tests/test_date_converter.py +148 -0
  30. nepali/tests/test_datetime.py +275 -29
  31. nepali/tests/test_humanize.py +78 -7
  32. nepali/tests/test_locations.py +154 -0
  33. nepali/tests/test_nepalimonth.py +152 -0
  34. nepali/tests/test_nepaliweek.py +154 -0
  35. nepali/tests/test_number.py +3152 -0
  36. nepali/tests/test_parser.py +82 -69
  37. nepali/tests/test_phone_number.py +254 -0
  38. nepali/tests/test_timezone.py +192 -0
  39. nepali/timezone.py +50 -7
  40. nepali/utils.py +9 -68
  41. nepali-1.2.0.dist-info/METADATA +476 -0
  42. nepali-1.2.0.dist-info/RECORD +46 -0
  43. {nepali-0.5.5.dist-info → nepali-1.2.0.dist-info}/WHEEL +1 -1
  44. {nepali-0.5.5.dist-info → nepali-1.2.0.dist-info/licenses}/LICENSE +1 -1
  45. {nepali-0.5.5.dist-info → nepali-1.2.0.dist-info}/top_level.txt +0 -0
  46. nepali/datetime/_converter.py +0 -394
  47. nepali/datetime/_formarter.py +0 -314
  48. nepali/datetime.py +0 -1169
  49. nepali/number.py +0 -51
  50. nepali-0.5.5.dist-info/METADATA +0 -220
  51. nepali-0.5.5.dist-info/RECORD +0 -27
@@ -0,0 +1,3152 @@
1
+ """
2
+ To run only this unit test use the command below.
3
+
4
+ python -m unittest nepali/tests/test_number.py -v
5
+ """
6
+ import unittest
7
+
8
+ from nepali import number
9
+ from nepali.number import NepaliNumber, nepalinumber
10
+
11
+
12
+ class TestNumber(unittest.TestCase):
13
+ def test_number_english_to_nepali(self):
14
+ self.assertEqual(
15
+ number.english_to_nepali("0123456789०१२३४५६७८९hello"),
16
+ "०१२३४५६७८९०१२३४५६७८९hello",
17
+ )
18
+ self.assertEqual(
19
+ NepaliNumber.convert("0123456789०१२३४५६७८९"), "०१२३४५६७८९०१२३४५६७८९"
20
+ )
21
+
22
+ def test_number_nepali_to_english(self):
23
+ self.assertEqual(
24
+ number.nepali_to_english("0123456789०१२३४५६७८९hello"),
25
+ "01234567890123456789hello",
26
+ )
27
+ self.assertEqual(
28
+ NepaliNumber.revert("0123456789०१२३४५६७८९"), "01234567890123456789"
29
+ )
30
+
31
+ def test_number_add_comma(self):
32
+ self.assertEqual(number.add_comma("123456789"), "12,34,56,789")
33
+ self.assertEqual(NepaliNumber.add_comma("123456789"), "12,34,56,789")
34
+
35
+ def test_number_add_comma_english(self):
36
+ self.assertEqual(number.add_comma_english("123456789"), "123,456,789")
37
+ self.assertEqual(NepaliNumber.add_comma_english("123456789"), "123,456,789")
38
+
39
+ def test_number_add_comma_with_convert_True(self):
40
+ self.assertEqual(number.add_comma("123456789", convert=True), "१२,३४,५६,७८९")
41
+
42
+ def test_number_add_comma_with_convert_False(self):
43
+ self.assertEqual(number.add_comma("123456789", convert=False), "12,34,56,789")
44
+
45
+ def test_number_convert_and_add_comma(self):
46
+ self.assertEqual(number.convert_and_add_comma("123456789"), "१२,३४,५६,७८९")
47
+ self.assertEqual(
48
+ NepaliNumber.convert_and_add_comma("123456789"), "१२,३४,५६,७८९"
49
+ )
50
+
51
+
52
+ # to run this test suite exclusively
53
+ # python -m unittest nepali.tests.test_number.TestNepaliNumber -v
54
+ class TestNepaliNumberArithmeticOperations(unittest.TestCase):
55
+ """
56
+ Contains test cases related to nepalinumber
57
+ arithmetic operations
58
+ """
59
+
60
+ @classmethod
61
+ def setUpClass(cls):
62
+ """
63
+ Test fixtures
64
+ """
65
+ # positive integers
66
+ cls.nepalinumber_integer_20 = number.nepalinumber(20)
67
+ cls.nepalinumber_integer_15 = number.nepalinumber(15)
68
+ cls.nepalinumber_integer_11 = number.nepalinumber(11)
69
+ cls.nepalinumber_integer_10 = number.nepalinumber(10)
70
+ cls.nepalinumber_integer_5 = number.nepalinumber(5)
71
+ cls.nepalinumber_integer_4 = number.nepalinumber(4)
72
+ cls.nepalinumber_integer_3 = number.nepalinumber(3)
73
+ cls.nepalinumber_integer_2 = number.nepalinumber(2)
74
+ cls.nepalinumber_integer_1 = number.nepalinumber(1)
75
+ # positive floats
76
+ cls.nepalinumber_float_21_21 = number.nepalinumber(21.21)
77
+ cls.nepalinumber_float_20_2 = number.nepalinumber(20.2)
78
+ cls.nepalinumber_float_20_1 = number.nepalinumber(20.1)
79
+ cls.nepalinumber_float_15_6 = number.nepalinumber(15.6)
80
+ cls.nepalinumber_float_15_5 = number.nepalinumber(15.5)
81
+ cls.nepalinumber_float_10_9 = number.nepalinumber(10.9)
82
+ cls.nepalinumber_float_10_0_cont = number.nepalinumber(
83
+ 20.1 - 10.1
84
+ ) # 10.000...2
85
+ cls.nepalinumber_float_10_1 = number.nepalinumber(10.1)
86
+ cls.nepalinumber_float_9_9 = number.nepalinumber(9.9)
87
+ cls.nepalinumber_float_5_5 = number.nepalinumber(5.5)
88
+ cls.nepalinumber_float_5_25 = number.nepalinumber(5.25)
89
+ cls.nepalinumber_float_4_6 = number.nepalinumber(4.6)
90
+ cls.nepalinumber_float_4_5 = number.nepalinumber(4.5)
91
+ cls.nepalinumber_float_3_5 = number.nepalinumber(3.5)
92
+ cls.nepalinumber_float_2_5 = number.nepalinumber(2.5)
93
+ cls.nepalinumber_float_2_25 = number.nepalinumber(2.25)
94
+ cls.nepalinumber_float_1_5 = number.nepalinumber(1.5)
95
+ cls.nepalinumber_float_1_25 = number.nepalinumber(1.25)
96
+ cls.nepalinumber_float_0_5 = number.nepalinumber(0.5)
97
+ cls.nepalinumber_float_0_1 = number.nepalinumber(0.1)
98
+ cls.nepalinumber_float_0_0_9 = number.nepalinumber(
99
+ 10.1 - 10
100
+ ) # to lazy to type 0.099...
101
+ # negative numbers
102
+ cls.nepalinumber_negative_integer_20 = number.nepalinumber(-20)
103
+ cls.nepalinumber_negative_integer_15 = number.nepalinumber(-15)
104
+ cls.nepalinumber_negative_integer_11 = number.nepalinumber(-11)
105
+ cls.nepalinumber_negative_integer_10 = number.nepalinumber(-10)
106
+ cls.nepalinumber_negative_integer_5 = number.nepalinumber(-5)
107
+ cls.nepalinumber_negative_integer_4 = number.nepalinumber(-4)
108
+ cls.nepalinumber_negative_integer_3 = number.nepalinumber(-3)
109
+ cls.nepalinumber_negative_integer_2 = number.nepalinumber(-2)
110
+ cls.nepalinumber_negative_integer_1 = number.nepalinumber(-1)
111
+ # negative floats
112
+ cls.nepalinumber_negative_float_21_21 = number.nepalinumber(-21.21)
113
+ cls.nepalinumber_negative_float_20_2 = number.nepalinumber(-20.2)
114
+ cls.nepalinumber_negative_float_20_1 = number.nepalinumber(-20.1)
115
+ cls.nepalinumber_negative_float_20_0 = number.nepalinumber(-20.0)
116
+ cls.nepalinumber_negative_float_15_6 = number.nepalinumber(-15.6)
117
+ cls.nepalinumber_negative_float_15_5 = number.nepalinumber(-15.5)
118
+ cls.nepalinumber_negative_float_10_1 = number.nepalinumber(-10.1)
119
+ cls.nepalinumber_negative_float_9_9 = number.nepalinumber(-9.9)
120
+ cls.nepalinumber_negative_float_5_5 = number.nepalinumber(-5.5)
121
+ cls.nepalinumber_negative_float_5_4 = number.nepalinumber(-5.4)
122
+ cls.nepalinumber_negative_float_4_5 = number.nepalinumber(-4.5)
123
+ cls.nepalinumber_negative_float_2_5 = number.nepalinumber(-2.5)
124
+ cls.nepalinumber_negative_float_2_25 = number.nepalinumber(-2.25)
125
+ cls.nepalinumber_negative_float_1_5 = number.nepalinumber(-1.5)
126
+ cls.nepalinumber_negative_float_1_25 = number.nepalinumber(-1.25)
127
+ cls.nepalinumber_negative_float_0_5 = number.nepalinumber(-0.5)
128
+ cls.nepalinumber_negative_float_0_0_9 = number.nepalinumber(
129
+ 10 - 10.1
130
+ ) # to lazy to type -0.099...
131
+ # zero
132
+ cls.nepalinumber_zero = number.nepalinumber(0)
133
+ # objects
134
+ cls.random_object = object
135
+ # string
136
+ cls.random_string = "test"
137
+
138
+ # addition
139
+ # nepalinumber positive integer addition tests
140
+ def test_nepalinumber_integer_is_addable_to_positive_integer(self):
141
+ self.assertEqual(
142
+ self.nepalinumber_integer_10 + 10, self.nepalinumber_integer_20
143
+ )
144
+
145
+ def test_nepalinumber_integer_is_addable_to_positive_float(self):
146
+ self.assertEqual(
147
+ self.nepalinumber_integer_10 + 10.1, self.nepalinumber_float_20_1
148
+ )
149
+
150
+ def test_nepalinumber_integer_is_addable_to_negative_integer(self):
151
+ self.assertEqual(self.nepalinumber_integer_10 + (-10), self.nepalinumber_zero)
152
+
153
+ def test_nepalinumber_integer_is_addable_to_negative_integer_to_give_negative_nepali_integer(
154
+ self,
155
+ ):
156
+ self.assertEqual(
157
+ self.nepalinumber_integer_10 + (-20), self.nepalinumber_negative_integer_10
158
+ )
159
+
160
+ def test_nepalinumber_integer_is_addable_to_negative_float(self):
161
+ self.assertEqual(
162
+ self.nepalinumber_integer_10 + (-5.5), self.nepalinumber_float_4_5
163
+ )
164
+
165
+ def test_nepalinumber_integer_is_addable_to_negative_float_to_give_negative_nepali_float(
166
+ self,
167
+ ):
168
+ self.assertEqual(
169
+ self.nepalinumber_integer_10 + (-15.5), self.nepalinumber_negative_float_5_5
170
+ )
171
+
172
+ def test_nepalinumber_integer_is_addable_to_positive_nepali_number_integer(self):
173
+ self.assertEqual(
174
+ self.nepalinumber_integer_10 + self.nepalinumber_integer_10,
175
+ self.nepalinumber_integer_20,
176
+ )
177
+
178
+ def test_nepalinumber_integer_is_addable_to_positive_nepali_number_float(self):
179
+ self.assertEqual(
180
+ self.nepalinumber_integer_10 + self.nepalinumber_float_10_1,
181
+ self.nepalinumber_float_20_1,
182
+ )
183
+
184
+ def test_nepalinumber_integer_is_addable_to_negative_nepali_number_integer(self):
185
+ self.assertEqual(
186
+ self.nepalinumber_integer_10 + self.nepalinumber_negative_integer_10,
187
+ self.nepalinumber_zero,
188
+ )
189
+
190
+ def test_nepalinumber_integer_is_addable_to_negative_nepali_number_integer_to_give_negative_nepali_number(
191
+ self,
192
+ ):
193
+ self.assertEqual(
194
+ self.nepalinumber_integer_10 + self.nepalinumber_negative_integer_20,
195
+ self.nepalinumber_negative_integer_10,
196
+ )
197
+
198
+ def test_nepalinumber_integer_is_addable_to_negative_nepali_number_float(self):
199
+ self.assertEqual(
200
+ self.nepalinumber_integer_10 + self.nepalinumber_negative_float_5_5,
201
+ self.nepalinumber_float_4_5,
202
+ )
203
+
204
+ def test_nepalinumber_integer_is_addable_to_negative_nepali_number_float_to_give_negative_nepali_number(
205
+ self,
206
+ ):
207
+ self.assertEqual(
208
+ self.nepalinumber_integer_10 + self.nepalinumber_negative_float_15_5,
209
+ self.nepalinumber_negative_float_5_5,
210
+ )
211
+
212
+ # adding the nepali number to other numbers tests
213
+ def test_positive_integer_is_addable_to_nepalinumber_integer(self):
214
+ self.assertEqual(
215
+ 10 + self.nepalinumber_integer_10, self.nepalinumber_integer_20
216
+ )
217
+
218
+ def test_positive_float_is_addable_to_nepalinumber_integer(self):
219
+ self.assertEqual(
220
+ 10.1 + self.nepalinumber_integer_10, self.nepalinumber_float_20_1
221
+ )
222
+
223
+ def test_negative_integer_is_addable_to_nepalinumber_integer(self):
224
+ self.assertEqual(-10 + self.nepalinumber_integer_10, self.nepalinumber_zero)
225
+
226
+ def test_negative_integer_is_addable_to_nepalinumber_integer_to_give_negative_nepali_integer(
227
+ self,
228
+ ):
229
+ self.assertEqual(
230
+ (-20) + self.nepalinumber_integer_10, self.nepalinumber_negative_integer_10
231
+ )
232
+
233
+ def test_negative_float_is_addable_to_nepalinumber_integer(self):
234
+ self.assertEqual(
235
+ (-5.5) + self.nepalinumber_integer_10, self.nepalinumber_float_4_5
236
+ )
237
+
238
+ def test_negative_float_is_addable_to_nepalinumber_integer_to_give_negative_nepali_float(
239
+ self,
240
+ ):
241
+ self.assertEqual(
242
+ (-15.5) + self.nepalinumber_integer_10, self.nepalinumber_negative_float_5_5
243
+ )
244
+
245
+ # nepalinumber negative integer addition tests
246
+ def test_negative_nepalinumber_integer_is_addable_to_positive_integer(self):
247
+ self.assertEqual(
248
+ self.nepalinumber_negative_integer_10 + 10, self.nepalinumber_zero
249
+ )
250
+
251
+ def test_negative_nepalinumber_integer_is_addable_to_positive_float(self):
252
+ self.assertEqual(
253
+ self.nepalinumber_negative_integer_10 + 10.1, self.nepalinumber_float_0_0_9
254
+ )
255
+
256
+ def test_negative_nepalinumber_integer_is_addable_to_positive_integer_to_give_positive_nepali_integer(
257
+ self,
258
+ ):
259
+ self.assertEqual(
260
+ self.nepalinumber_negative_integer_10 + 20, self.nepalinumber_integer_10
261
+ )
262
+
263
+ def test_negative_nepalinumber_integer_is_addable_to_negative_integer(self):
264
+ self.assertEqual(
265
+ self.nepalinumber_negative_integer_10 + (-10),
266
+ self.nepalinumber_negative_float_20_0,
267
+ )
268
+
269
+ def test_negative_nepalinumber_integer_is_addable_to_negative_float(self):
270
+ self.assertEqual(
271
+ self.nepalinumber_negative_integer_10 + (-5.5),
272
+ self.nepalinumber_negative_float_15_5,
273
+ )
274
+
275
+ def test_negative_nepalinumber_integer_is_addable_to_positive_float_to_give_positive_nepali_float(
276
+ self,
277
+ ):
278
+ self.assertEqual(
279
+ self.nepalinumber_negative_integer_10 + 15.5, self.nepalinumber_float_5_5
280
+ )
281
+
282
+ def test_negative_nepalinumber_integer_is_addable_to_positive_nepali_number_integer(
283
+ self,
284
+ ):
285
+ self.assertEqual(
286
+ self.nepalinumber_negative_integer_10 + self.nepalinumber_integer_10,
287
+ self.nepalinumber_zero,
288
+ )
289
+
290
+ def test_negative_nepalinumber_integer_is_addable_to_positive_nepali_number_float(
291
+ self,
292
+ ):
293
+ self.assertEqual(
294
+ self.nepalinumber_negative_integer_10 + self.nepalinumber_float_10_1,
295
+ self.nepalinumber_float_0_0_9,
296
+ )
297
+
298
+ def test_negative_nepalinumber_integer_is_addable_to_negative_nepali_number_integer(
299
+ self,
300
+ ):
301
+ self.assertEqual(
302
+ self.nepalinumber_negative_integer_10
303
+ + self.nepalinumber_negative_integer_10,
304
+ self.nepalinumber_negative_integer_20,
305
+ )
306
+
307
+ def test_negative_nepalinumber_integer_is_addable_to_positive_nepali_number_integer_to_give_positive_nepali_number(
308
+ self,
309
+ ):
310
+ self.assertEqual(
311
+ self.nepalinumber_negative_integer_10 + self.nepalinumber_integer_20,
312
+ self.nepalinumber_integer_10,
313
+ )
314
+
315
+ def test_negative_nepalinumber_integer_is_addable_to_negative_nepali_number_float(
316
+ self,
317
+ ):
318
+ self.assertEqual(
319
+ self.nepalinumber_negative_integer_10
320
+ + self.nepalinumber_negative_float_5_5,
321
+ self.nepalinumber_negative_float_15_5,
322
+ )
323
+
324
+ def test_nepalinumber_integer_is_addable_to_positive_nepali_number_float_to_give_positive_nepali_number(
325
+ self,
326
+ ):
327
+ self.assertEqual(
328
+ self.nepalinumber_negative_float_10_1 + self.nepalinumber_float_20_1,
329
+ self.nepalinumber_float_10_0_cont,
330
+ )
331
+
332
+ # nepalinumber positive float addition tests
333
+ def test_nepalinumber_float_is_addable_to_positive_integer(self):
334
+ self.assertEqual(
335
+ self.nepalinumber_float_10_1 + 10, self.nepalinumber_float_20_1
336
+ )
337
+
338
+ def test_nepalinumber_float_is_addable_to_positive_float(self):
339
+ self.assertEqual(
340
+ self.nepalinumber_float_10_1 + 10.1, self.nepalinumber_float_20_2
341
+ )
342
+
343
+ def test_nepalinumber_float_is_addable_to_negative_integer(self):
344
+ self.assertEqual(
345
+ self.nepalinumber_float_10_1 + (-10), self.nepalinumber_float_0_0_9
346
+ )
347
+
348
+ def test_nepalinumber_float_is_addable_to_negative_integer_to_give_negative_nepali_integer(
349
+ self,
350
+ ):
351
+ self.assertEqual(
352
+ self.nepalinumber_float_10_9 + (-21), self.nepalinumber_negative_float_10_1
353
+ )
354
+
355
+ def test_nepalinumber_float_is_addable_to_negative_float(self):
356
+ self.assertEqual(
357
+ self.nepalinumber_float_10_1 + (-5.6), self.nepalinumber_float_4_5
358
+ )
359
+
360
+ def test_nepalinumber_float_is_addable_to_negative_float_to_give_negative_nepali_float(
361
+ self,
362
+ ):
363
+ self.assertEqual(
364
+ self.nepalinumber_float_10_1 + (-15.6), self.nepalinumber_negative_float_5_5
365
+ )
366
+
367
+ def test_nepalinumber_float_is_addable_to_positive_nepali_number_integer(self):
368
+ self.assertEqual(
369
+ self.nepalinumber_float_10_1 + self.nepalinumber_integer_10,
370
+ self.nepalinumber_float_20_1,
371
+ )
372
+
373
+ def test_nepalinumber_float_is_addable_to_positive_nepali_number_float(self):
374
+ self.assertEqual(
375
+ self.nepalinumber_float_10_1 + self.nepalinumber_float_10_1,
376
+ self.nepalinumber_float_20_2,
377
+ )
378
+
379
+ def test_nepalinumber_float_is_addable_to_negative_nepali_number_integer(self):
380
+ self.assertEqual(
381
+ self.nepalinumber_float_10_1 + self.nepalinumber_negative_integer_10,
382
+ self.nepalinumber_float_0_0_9,
383
+ )
384
+
385
+ def test_nepalinumber_float_is_addable_to_negative_nepali_number_integer_to_give_negative_nepali_number(
386
+ self,
387
+ ):
388
+ self.assertEqual(
389
+ self.nepalinumber_float_10_1 + self.nepalinumber_negative_integer_20,
390
+ self.nepalinumber_negative_float_9_9,
391
+ )
392
+
393
+ def test_nepalinumber_float_is_addable_to_negative_nepali_number_float(self):
394
+ self.assertEqual(
395
+ self.nepalinumber_float_10_1 + self.nepalinumber_negative_float_5_5,
396
+ self.nepalinumber_float_4_6,
397
+ )
398
+
399
+ def test_nepalinumber_float_is_addable_to_negative_nepali_number_float_to_give_negative_nepali_number(
400
+ self,
401
+ ):
402
+ self.assertEqual(
403
+ self.nepalinumber_float_10_1 + self.nepalinumber_negative_float_15_5,
404
+ self.nepalinumber_negative_float_5_4,
405
+ )
406
+
407
+ # nepalinumber negative float addition tests
408
+ def test_negative_nepalinumber_float_is_addable_to_positive_integer(self):
409
+ self.assertEqual(
410
+ self.nepalinumber_negative_float_10_1 + 10,
411
+ self.nepalinumber_negative_float_0_0_9,
412
+ )
413
+
414
+ def test_negative_nepalinumber_float_is_addable_to_positive_float(self):
415
+ self.assertEqual(
416
+ self.nepalinumber_negative_float_10_1 + 10.1, self.nepalinumber_zero
417
+ )
418
+
419
+ def test_negative_nepalinumber_float_is_addable_to_positive_integer_to_give_positive_nepali_float(
420
+ self,
421
+ ):
422
+ self.assertEqual(
423
+ self.nepalinumber_negative_float_10_1 + 20, self.nepalinumber_float_9_9
424
+ )
425
+
426
+ def test_negative_nepalinumber_float_is_addable_to_negative_integer(self):
427
+ self.assertEqual(
428
+ self.nepalinumber_negative_float_10_1 + (-10),
429
+ self.nepalinumber_negative_float_20_1,
430
+ )
431
+
432
+ def test_negative_nepalinumber_float_is_addable_to_negative_float(self):
433
+ self.assertEqual(
434
+ self.nepalinumber_negative_float_10_1 + (-5.4),
435
+ self.nepalinumber_negative_float_15_5,
436
+ )
437
+
438
+ def test_negative_nepalinumber_float_is_addable_to_positive_float_to_give_positive_nepali_float(
439
+ self,
440
+ ):
441
+ self.assertEqual(
442
+ self.nepalinumber_negative_float_10_1 + 15.6, self.nepalinumber_float_5_5
443
+ )
444
+
445
+ def test_negative_nepalinumber_float_is_addable_to_positive_nepali_number_integer(
446
+ self,
447
+ ):
448
+ self.assertEqual(
449
+ self.nepalinumber_negative_float_10_1 + self.nepalinumber_integer_10,
450
+ self.nepalinumber_negative_float_0_0_9,
451
+ )
452
+
453
+ def test_negative_nepalinumber_float_is_addable_to_positive_nepali_number_float(
454
+ self,
455
+ ):
456
+ self.assertEqual(
457
+ self.nepalinumber_negative_float_10_1 + self.nepalinumber_float_10_1,
458
+ self.nepalinumber_zero,
459
+ )
460
+
461
+ def test_negative_nepalinumber_float_is_addable_to_negative_nepali_number_integer(
462
+ self,
463
+ ):
464
+ self.assertEqual(
465
+ self.nepalinumber_negative_float_10_1
466
+ + self.nepalinumber_negative_integer_10,
467
+ self.nepalinumber_negative_float_20_1,
468
+ )
469
+
470
+ def test_negative_nepalinumber_float_is_addable_to_positive_nepali_number_integer_to_give_positive_nepali_number(
471
+ self,
472
+ ):
473
+ self.assertEqual(
474
+ self.nepalinumber_negative_float_10_1 + self.nepalinumber_integer_20,
475
+ self.nepalinumber_float_9_9,
476
+ )
477
+
478
+ def test_negative_nepalinumber_float_is_addable_to_negative_nepali_number_float(
479
+ self,
480
+ ):
481
+ self.assertEqual(
482
+ self.nepalinumber_negative_float_10_1
483
+ + self.nepalinumber_negative_float_5_5,
484
+ self.nepalinumber_negative_float_15_6,
485
+ )
486
+
487
+ def test_nepalinumber_float_is_addable_to_positive_nepali_number_float_to_give_positive_nepali_number(
488
+ self,
489
+ ):
490
+ self.assertEqual(
491
+ self.nepalinumber_negative_float_10_1 + self.nepalinumber_float_20_1,
492
+ self.nepalinumber_float_10_0_cont,
493
+ )
494
+
495
+ # addition negative testing
496
+ def test_nepalinumber_throws_error_when_objects_are_added_other_than_int_or_float(
497
+ self,
498
+ ):
499
+ self.assertNotIsInstance(self.random_object, int)
500
+ self.assertNotIsInstance(self.random_object, float)
501
+
502
+ with self.assertRaises(TypeError) as te:
503
+ _ = self.nepalinumber_integer_10 + self.random_object
504
+
505
+ self.assertEqual(
506
+ str(te.exception),
507
+ "unsupported operand type(s) for +: 'nepalinumber' and 'type'",
508
+ )
509
+
510
+ def test_nepalinumber_throws_error_when_added_with_objects_other_than_int_or_float(
511
+ self,
512
+ ):
513
+ self.assertNotIsInstance(self.random_object, int)
514
+ self.assertNotIsInstance(self.random_object, float)
515
+
516
+ with self.assertRaises(TypeError) as te:
517
+ _ = self.random_object + self.nepalinumber_integer_10
518
+
519
+ self.assertEqual(
520
+ str(te.exception),
521
+ "unsupported operand type(s) for +: 'type' and 'nepalinumber'",
522
+ )
523
+
524
+ # subtraction
525
+ # nepalinumber positive integer subtraction tests
526
+ def test_nepalinumber_integer_is_subtractable_by_positive_integer(self):
527
+ self.assertEqual(self.nepalinumber_integer_10 - 10, self.nepalinumber_zero)
528
+
529
+ def test_nepalinumber_integer_is_subtractable_by_positive_float(self):
530
+ self.assertEqual(
531
+ self.nepalinumber_integer_10 - 5.5, self.nepalinumber_float_4_5
532
+ )
533
+
534
+ def test_nepalinumber_integer_is_subtractable_by_negative_integer(self):
535
+ self.assertEqual(
536
+ self.nepalinumber_integer_10 - (-10), self.nepalinumber_integer_20
537
+ )
538
+
539
+ def test_nepalinumber_integer_is_subtractable_by_negative_float(self):
540
+ self.assertEqual(
541
+ self.nepalinumber_integer_10 - (-5.5), self.nepalinumber_float_15_5
542
+ )
543
+
544
+ def test_nepalinumber_integer_is_subtractable_by_positive_nepali_number_integer(
545
+ self,
546
+ ):
547
+ self.assertEqual(
548
+ self.nepalinumber_integer_10 - self.nepalinumber_integer_10,
549
+ self.nepalinumber_zero,
550
+ )
551
+
552
+ def test_nepalinumber_integer_is_subtractable_by_positive_nepali_number_float(self):
553
+ self.assertEqual(
554
+ self.nepalinumber_integer_10 - self.nepalinumber_float_5_5,
555
+ self.nepalinumber_float_4_5,
556
+ )
557
+
558
+ def test_nepalinumber_integer_is_subtractable_by_negative_nepali_number_integer(
559
+ self,
560
+ ):
561
+ self.assertEqual(
562
+ self.nepalinumber_integer_10 - self.nepalinumber_negative_integer_10,
563
+ self.nepalinumber_integer_20,
564
+ )
565
+
566
+ def test_nepalinumber_integer_is_subtractable_by_negative_nepali_number_float(self):
567
+ self.assertEqual(
568
+ self.nepalinumber_integer_10 - self.nepalinumber_negative_float_5_5,
569
+ self.nepalinumber_float_15_5,
570
+ )
571
+
572
+ # subtracting the nepali number to other numbers tests
573
+ def test_positive_integer_is_subtractable_by_nepalinumber_integer(self):
574
+ self.assertEqual(10 - self.nepalinumber_integer_10, self.nepalinumber_zero)
575
+
576
+ def test_positive_float_is_subtractable_by_nepalinumber_integer(self):
577
+ self.assertEqual(
578
+ 10.1 - self.nepalinumber_integer_10, self.nepalinumber_float_0_0_9
579
+ )
580
+
581
+ def test_negative_integer_is_subtractable_by_nepalinumber_integer(self):
582
+ self.assertEqual(
583
+ (-10) - self.nepalinumber_integer_10, self.nepalinumber_negative_integer_20
584
+ )
585
+
586
+ def test_negative_float_is_subtractable_by_nepalinumber_integer(self):
587
+ self.assertEqual(
588
+ (-5.5) - self.nepalinumber_integer_10, self.nepalinumber_negative_float_15_5
589
+ )
590
+
591
+ def test_negative_float_is_subtractable_by_nepalinumber_integer_to_give_negative_nepali_float(
592
+ self,
593
+ ):
594
+ self.assertEqual(
595
+ (-5.5) - self.nepalinumber_integer_10, self.nepalinumber_negative_float_15_5
596
+ )
597
+
598
+ # nepalinumber negative integer subtraction tests
599
+ def test_negative_nepalinumber_integer_is_subtractable_by_positive_integer(self):
600
+ self.assertEqual(
601
+ self.nepalinumber_negative_integer_10 - 10,
602
+ self.nepalinumber_negative_integer_20,
603
+ )
604
+
605
+ def test_negative_nepalinumber_integer_is_subtractable_by_positive_float(self):
606
+ self.assertEqual(
607
+ self.nepalinumber_negative_integer_10 - 10.1,
608
+ self.nepalinumber_negative_float_20_1,
609
+ )
610
+
611
+ def test_negative_nepalinumber_integer_is_subtractable_by_negative_integer_to_give_positive_nepali_integer(
612
+ self,
613
+ ):
614
+ self.assertEqual(
615
+ self.nepalinumber_negative_integer_10 - (-20), self.nepalinumber_integer_10
616
+ )
617
+
618
+ def test_negative_nepalinumber_integer_is_subtractable_by_negative_float(self):
619
+ self.assertEqual(
620
+ self.nepalinumber_negative_integer_10 - (-5.5),
621
+ self.nepalinumber_negative_float_4_5,
622
+ )
623
+
624
+ def test_negative_nepalinumber_integer_is_subtractable_by_negative_float_to_give_positive_nepali_float(
625
+ self,
626
+ ):
627
+ self.assertEqual(
628
+ self.nepalinumber_negative_integer_10 - (-15.5), self.nepalinumber_float_5_5
629
+ )
630
+
631
+ def test_negative_nepalinumber_integer_is_subtractable_by_positive_nepali_number_integer(
632
+ self,
633
+ ):
634
+ self.assertEqual(
635
+ self.nepalinumber_negative_integer_10 - self.nepalinumber_integer_10,
636
+ self.nepalinumber_negative_float_20_0,
637
+ )
638
+
639
+ def test_negative_nepalinumber_integer_is_subtractable_by_positive_nepali_number_float(
640
+ self,
641
+ ):
642
+ self.assertEqual(
643
+ self.nepalinumber_negative_integer_10 - self.nepalinumber_float_10_1,
644
+ self.nepalinumber_negative_float_20_1,
645
+ )
646
+
647
+ def test_negative_nepalinumber_integer_is_subtractable_by_negative_nepali_number_integer(
648
+ self,
649
+ ):
650
+ self.assertEqual(
651
+ self.nepalinumber_negative_integer_10
652
+ - self.nepalinumber_negative_integer_10,
653
+ self.nepalinumber_zero,
654
+ )
655
+
656
+ def test_negative_nepalinumber_integer_is_subtractable_by_negative_nepali_number_integer_to_give_positive_nepali_number(
657
+ self,
658
+ ):
659
+ self.assertEqual(
660
+ self.nepalinumber_negative_integer_10
661
+ - self.nepalinumber_negative_integer_20,
662
+ self.nepalinumber_integer_10,
663
+ )
664
+
665
+ def test_negative_nepalinumber_integer_is_subtractable_by_negative_nepali_number_float(
666
+ self,
667
+ ):
668
+ self.assertEqual(
669
+ self.nepalinumber_negative_integer_10
670
+ - self.nepalinumber_negative_float_5_5,
671
+ self.nepalinumber_negative_float_4_5,
672
+ )
673
+
674
+ def test_nepalinumber_integer_is_subtractable_by_negative_nepali_number_float_to_give_positive_nepali_number(
675
+ self,
676
+ ):
677
+ self.assertEqual(
678
+ self.nepalinumber_negative_float_10_1
679
+ - self.nepalinumber_negative_float_20_1,
680
+ self.nepalinumber_float_10_0_cont,
681
+ )
682
+
683
+ # nepalinumber positive float subtraction tests
684
+ def test_nepalinumber_float_is_subtractable_by_positive_integer(self):
685
+ self.assertEqual(
686
+ self.nepalinumber_float_10_1 - 10, self.nepalinumber_float_0_0_9
687
+ )
688
+
689
+ def test_nepalinumber_float_is_subtractable_by_positive_float(self):
690
+ self.assertEqual(self.nepalinumber_float_10_1 - 10.1, self.nepalinumber_zero)
691
+
692
+ def test_nepalinumber_float_is_subtractable_by_negative_integer(self):
693
+ self.assertEqual(
694
+ self.nepalinumber_float_10_1 - (-10), self.nepalinumber_float_20_1
695
+ )
696
+
697
+ def test_nepalinumber_float_is_subtractable_by_negative_float(self):
698
+ self.assertEqual(
699
+ self.nepalinumber_float_10_1 - (-5.4), self.nepalinumber_float_15_5
700
+ )
701
+
702
+ def test_nepalinumber_float_is_subtractable_by_positive_nepali_number_integer(self):
703
+ self.assertEqual(
704
+ self.nepalinumber_float_10_1 - self.nepalinumber_integer_10,
705
+ self.nepalinumber_float_0_0_9,
706
+ )
707
+
708
+ def test_nepalinumber_float_is_subtractable_by_positive_nepali_number_float(self):
709
+ self.assertEqual(
710
+ self.nepalinumber_float_10_1 - self.nepalinumber_float_10_1,
711
+ self.nepalinumber_zero,
712
+ )
713
+
714
+ def test_nepalinumber_float_is_subtractable_by_negative_nepali_number_integer(self):
715
+ self.assertEqual(
716
+ self.nepalinumber_float_10_1 - self.nepalinumber_negative_integer_10,
717
+ self.nepalinumber_float_20_1,
718
+ )
719
+
720
+ def test_nepalinumber_float_is_subtractable_by_positive_nepali_number_integer_to_give_negative_nepali_number(
721
+ self,
722
+ ):
723
+ self.assertEqual(
724
+ self.nepalinumber_float_10_1 - self.nepalinumber_integer_20,
725
+ self.nepalinumber_negative_float_9_9,
726
+ )
727
+
728
+ def test_nepalinumber_float_is_subtractable_by_negative_nepali_number_float(self):
729
+ self.assertEqual(
730
+ self.nepalinumber_float_10_1 - self.nepalinumber_negative_float_5_5,
731
+ self.nepalinumber_float_15_6,
732
+ )
733
+
734
+ # nepalinumber negative float subtraction tests
735
+ def test_negative_nepalinumber_float_is_subtractable_by_positive_integer(self):
736
+ self.assertEqual(
737
+ self.nepalinumber_negative_float_10_1 - 10,
738
+ self.nepalinumber_negative_float_20_1,
739
+ )
740
+
741
+ def test_negative_nepalinumber_float_is_subtractable_by_positive_float(self):
742
+ self.assertEqual(
743
+ self.nepalinumber_negative_float_10_1 - 5.4,
744
+ self.nepalinumber_negative_float_15_5,
745
+ )
746
+
747
+ def test_negative_nepalinumber_float_is_subtractable_by_negative_integer_to_give_positive_nepali_float(
748
+ self,
749
+ ):
750
+ self.assertEqual(
751
+ self.nepalinumber_negative_float_10_1 - (-20), self.nepalinumber_float_9_9
752
+ )
753
+
754
+ def test_negative_nepalinumber_float_is_subtractable_by_negative_integer(self):
755
+ self.assertEqual(
756
+ self.nepalinumber_negative_float_10_1 - (-10),
757
+ self.nepalinumber_negative_float_0_0_9,
758
+ )
759
+
760
+ def test_negative_nepalinumber_float_is_subtractable_by_negative_float(self):
761
+ self.assertEqual(
762
+ self.nepalinumber_negative_float_10_1 - (-5.6),
763
+ self.nepalinumber_negative_float_4_5,
764
+ )
765
+
766
+ def test_negative_nepalinumber_float_is_subtractable_by_negative_float_to_give_positive_nepali_float(
767
+ self,
768
+ ):
769
+ self.assertEqual(
770
+ self.nepalinumber_negative_float_10_1 - (-15.6), self.nepalinumber_float_5_5
771
+ )
772
+
773
+ def test_negative_nepalinumber_float_is_subtractable_by_positive_nepali_number_integer(
774
+ self,
775
+ ):
776
+ self.assertEqual(
777
+ self.nepalinumber_negative_float_10_1 - self.nepalinumber_integer_10,
778
+ self.nepalinumber_negative_float_20_1,
779
+ )
780
+
781
+ def test_negative_nepalinumber_float_is_subtractable_by_positive_nepali_number_float(
782
+ self,
783
+ ):
784
+ self.assertEqual(
785
+ self.nepalinumber_negative_float_10_1 - self.nepalinumber_float_5_5,
786
+ self.nepalinumber_negative_float_15_6,
787
+ )
788
+
789
+ def test_negative_nepalinumber_float_is_subtractable_by_negative_nepali_number_integer(
790
+ self,
791
+ ):
792
+ self.assertEqual(
793
+ self.nepalinumber_negative_float_10_1
794
+ - self.nepalinumber_negative_integer_10,
795
+ self.nepalinumber_negative_float_0_0_9,
796
+ )
797
+
798
+ def test_negative_nepalinumber_float_is_subtractable_by_negative_nepali_number_integer_to_give_positive_nepali_number(
799
+ self,
800
+ ):
801
+ self.assertEqual(
802
+ self.nepalinumber_negative_float_10_1
803
+ - self.nepalinumber_negative_integer_20,
804
+ self.nepalinumber_float_9_9,
805
+ )
806
+
807
+ def test_negative_nepalinumber_float_is_subtractable_by_negative_nepali_number_float(
808
+ self,
809
+ ):
810
+ self.assertEqual(
811
+ self.nepalinumber_negative_float_10_1
812
+ - self.nepalinumber_negative_float_10_1,
813
+ self.nepalinumber_zero,
814
+ )
815
+
816
+ def test_nepalinumber_float_is_subtractable_by_negative_nepali_number_float_to_give_positive_nepali_number(
817
+ self,
818
+ ):
819
+ self.assertEqual(
820
+ self.nepalinumber_negative_float_10_1
821
+ - self.nepalinumber_negative_float_20_1,
822
+ self.nepalinumber_float_10_0_cont,
823
+ )
824
+
825
+ # subtraction negative testing
826
+ def test_nepalinumber_throws_error_when_subtracted_by_object_other_than_int_or_float(
827
+ self,
828
+ ):
829
+ self.assertNotIsInstance(self.random_object, int)
830
+ self.assertNotIsInstance(self.random_object, float)
831
+
832
+ with self.assertRaises(TypeError) as te:
833
+ _ = self.nepalinumber_integer_10 - self.random_object
834
+
835
+ self.assertEqual(
836
+ str(te.exception),
837
+ "unsupported operand type(s) for -: 'nepalinumber' and 'type'",
838
+ )
839
+
840
+ def test_nepalinumber_throws_error_when_subtracted_to_objects_other_than_int_or_float(
841
+ self,
842
+ ):
843
+ self.assertNotIsInstance(self.random_object, int)
844
+ self.assertNotIsInstance(self.random_object, float)
845
+
846
+ with self.assertRaises(TypeError) as te:
847
+ _ = self.random_object - self.nepalinumber_integer_10
848
+
849
+ self.assertEqual(
850
+ str(te.exception),
851
+ "unsupported operand type(s) for -: 'type' and 'nepalinumber'",
852
+ )
853
+
854
+ # multiplication
855
+ # nepalinumber positive integer multiplication tests
856
+ def test_nepalinumber_integer_is_multiplicable_to_positive_integer(self):
857
+ self.assertEqual(self.nepalinumber_integer_10 * 2, self.nepalinumber_integer_20)
858
+
859
+ def test_nepalinumber_integer_is_multiplicable_to_positive_float(self):
860
+ self.assertEqual(
861
+ self.nepalinumber_integer_10 * 1.5, self.nepalinumber_integer_15
862
+ )
863
+
864
+ def test_nepalinumber_integer_is_multiplicable_to_negative_integer(self):
865
+ self.assertEqual(
866
+ self.nepalinumber_integer_10 * (-2), self.nepalinumber_negative_integer_20
867
+ )
868
+
869
+ def test_nepalinumber_integer_is_multiplicable_to_negative_float(self):
870
+ self.assertEqual(
871
+ self.nepalinumber_integer_10 * (-1.5), self.nepalinumber_negative_integer_15
872
+ )
873
+
874
+ def test_nepalinumber_integer_is_multiplicable_to_positive_nepali_number_integer(
875
+ self,
876
+ ):
877
+ self.assertEqual(
878
+ self.nepalinumber_integer_10 * self.nepalinumber_integer_2,
879
+ self.nepalinumber_integer_20,
880
+ )
881
+
882
+ def test_nepalinumber_integer_is_multiplicable_to_positive_nepali_number_float(
883
+ self,
884
+ ):
885
+ self.assertEqual(
886
+ self.nepalinumber_integer_10 * self.nepalinumber_float_1_5,
887
+ self.nepalinumber_integer_15,
888
+ )
889
+
890
+ def test_nepalinumber_integer_is_multiplicable_to_negative_nepali_number_integer(
891
+ self,
892
+ ):
893
+ self.assertEqual(
894
+ self.nepalinumber_integer_10 * self.nepalinumber_negative_integer_2,
895
+ self.nepalinumber_negative_integer_20,
896
+ )
897
+
898
+ def test_nepalinumber_integer_is_multiplicable_to_negative_nepali_number_float(
899
+ self,
900
+ ):
901
+ self.assertEqual(
902
+ self.nepalinumber_integer_10 * self.nepalinumber_negative_float_1_5,
903
+ self.nepalinumber_negative_integer_15,
904
+ )
905
+
906
+ # multiplying the nepali number to other numbers tests
907
+ def test_positive_integer_is_multiplicable_to_nepalinumber_integer(self):
908
+ self.assertEqual(2 * self.nepalinumber_integer_10, self.nepalinumber_integer_20)
909
+
910
+ def test_positive_float_is_multiplicable_to_nepalinumber_integer(self):
911
+ self.assertEqual(
912
+ 1.5 * self.nepalinumber_integer_10, self.nepalinumber_integer_15
913
+ )
914
+
915
+ def test_negative_integer_is_multiplicable_to_nepalinumber_integer(self):
916
+ self.assertEqual(
917
+ -2 * self.nepalinumber_integer_10, self.nepalinumber_negative_integer_20
918
+ )
919
+
920
+ def test_negative_integer_is_multiplicable_to_nepalinumber_integer_to_give_negative_nepali_integer(
921
+ self,
922
+ ):
923
+ self.assertEqual(
924
+ -2 * self.nepalinumber_integer_10, self.nepalinumber_negative_integer_20
925
+ )
926
+
927
+ def test_negative_float_is_multiplicable_to_nepalinumber_integer(self):
928
+ self.assertEqual(
929
+ (-1.5) * self.nepalinumber_integer_10, self.nepalinumber_negative_integer_15
930
+ )
931
+
932
+ # nepalinumber negative integer multiplication tests
933
+ def test_negative_nepalinumber_integer_is_multiplicable_to_positive_integer(self):
934
+ self.assertEqual(
935
+ self.nepalinumber_negative_integer_10 * 2,
936
+ self.nepalinumber_negative_integer_20,
937
+ )
938
+
939
+ def test_negative_nepalinumber_integer_is_multiplicable_to_positive_float(self):
940
+ self.assertEqual(
941
+ self.nepalinumber_negative_integer_10 * 1.5,
942
+ self.nepalinumber_negative_integer_15,
943
+ )
944
+
945
+ def test_negative_nepalinumber_integer_is_multiplicable_to_negative_integer(self):
946
+ self.assertEqual(
947
+ self.nepalinumber_negative_integer_10 * (-2),
948
+ self.nepalinumber_integer_20,
949
+ )
950
+
951
+ def test_negative_nepalinumber_integer_is_multiplicable_to_negative_float(self):
952
+ self.assertEqual(
953
+ self.nepalinumber_negative_integer_10 * (-1.5),
954
+ self.nepalinumber_integer_15,
955
+ )
956
+
957
+ def test_negative_nepalinumber_integer_is_multiplicable_to_positive_nepali_number_integer(
958
+ self,
959
+ ):
960
+ self.assertEqual(
961
+ self.nepalinumber_negative_integer_10 * self.nepalinumber_integer_2,
962
+ self.nepalinumber_negative_integer_20,
963
+ )
964
+
965
+ def test_negative_nepalinumber_integer_is_multiplicable_to_positive_nepali_number_float(
966
+ self,
967
+ ):
968
+ self.assertEqual(
969
+ self.nepalinumber_negative_integer_10 * self.nepalinumber_float_1_5,
970
+ self.nepalinumber_negative_integer_15,
971
+ )
972
+
973
+ def test_negative_nepalinumber_integer_is_multiplicable_to_negative_nepali_number_integer(
974
+ self,
975
+ ):
976
+ self.assertEqual(
977
+ self.nepalinumber_negative_integer_10
978
+ * self.nepalinumber_negative_integer_2,
979
+ self.nepalinumber_integer_20,
980
+ )
981
+
982
+ def test_negative_nepalinumber_integer_is_multiplicable_to_negative_nepali_number_float(
983
+ self,
984
+ ):
985
+ self.assertEqual(
986
+ self.nepalinumber_negative_integer_10
987
+ * self.nepalinumber_negative_float_1_5,
988
+ self.nepalinumber_integer_15,
989
+ )
990
+
991
+ # nepalinumber positive float multiplication tests
992
+ def test_nepalinumber_float_is_multiplicable_to_positive_integer(self):
993
+ self.assertEqual(self.nepalinumber_float_1_5 * 10, self.nepalinumber_integer_15)
994
+
995
+ def test_nepalinumber_float_is_multiplicable_to_positive_float(self):
996
+ self.assertEqual(
997
+ self.nepalinumber_float_10_1 * 2.1, self.nepalinumber_float_21_21
998
+ )
999
+
1000
+ def test_nepalinumber_float_is_multiplicable_to_negative_integer(self):
1001
+ self.assertEqual(
1002
+ self.nepalinumber_float_1_5 * (-3), self.nepalinumber_negative_float_4_5
1003
+ )
1004
+
1005
+ def test_nepalinumber_float_is_multiplicable_to_negative_float(self):
1006
+ self.assertEqual(
1007
+ self.nepalinumber_float_4_5 * (-2.2), self.nepalinumber_negative_float_9_9
1008
+ )
1009
+
1010
+ def test_nepalinumber_float_is_multiplicable_to_positive_nepali_number_integer(
1011
+ self,
1012
+ ):
1013
+ self.assertEqual(
1014
+ self.nepalinumber_float_10_1 * self.nepalinumber_integer_2,
1015
+ self.nepalinumber_float_20_2,
1016
+ )
1017
+
1018
+ def test_nepalinumber_float_is_multiplicable_to_positive_nepali_number_float(self):
1019
+ self.assertEqual(
1020
+ self.nepalinumber_float_1_5 * self.nepalinumber_float_3_5,
1021
+ self.nepalinumber_float_5_25,
1022
+ )
1023
+
1024
+ def test_nepalinumber_float_is_multiplicable_to_negative_nepali_number_integer(
1025
+ self,
1026
+ ):
1027
+ self.assertEqual(
1028
+ self.nepalinumber_float_10_1 * self.nepalinumber_negative_integer_2,
1029
+ self.nepalinumber_negative_float_20_2,
1030
+ )
1031
+
1032
+ def test_nepalinumber_float_is_multiplicable_to_negative_nepali_number_float(self):
1033
+ self.assertEqual(
1034
+ self.nepalinumber_float_1_5 * self.nepalinumber_negative_float_1_5,
1035
+ self.nepalinumber_negative_float_2_25,
1036
+ )
1037
+
1038
+ # nepalinumber negative float addition tests
1039
+ def test_negative_nepalinumber_float_is_multiplicable_to_positive_integer(self):
1040
+ self.assertEqual(
1041
+ self.nepalinumber_negative_float_10_1 * 2,
1042
+ self.nepalinumber_negative_float_20_2,
1043
+ )
1044
+
1045
+ def test_negative_nepalinumber_float_is_multiplicable_to_positive_float(self):
1046
+ self.assertEqual(
1047
+ self.nepalinumber_negative_float_1_5 * 1.5,
1048
+ self.nepalinumber_negative_float_2_25,
1049
+ )
1050
+
1051
+ def test_negative_nepalinumber_float_is_multiplicable_to_negative_integer(self):
1052
+ self.assertEqual(
1053
+ self.nepalinumber_negative_float_10_1 * (-2),
1054
+ self.nepalinumber_float_20_2,
1055
+ )
1056
+
1057
+ def test_negative_nepalinumber_float_is_multiplicable_to_negative_float(self):
1058
+ self.assertEqual(
1059
+ self.nepalinumber_negative_float_1_5 * (-3.5),
1060
+ self.nepalinumber_float_5_25,
1061
+ )
1062
+
1063
+ def test_negative_nepalinumber_float_is_multiplicable_to_positive_nepali_number_integer(
1064
+ self,
1065
+ ):
1066
+ self.assertEqual(
1067
+ self.nepalinumber_negative_float_10_1 * self.nepalinumber_integer_2,
1068
+ self.nepalinumber_negative_float_20_2,
1069
+ )
1070
+
1071
+ def test_negative_nepalinumber_float_is_multiplicable_to_positive_nepali_number_float(
1072
+ self,
1073
+ ):
1074
+ self.assertEqual(
1075
+ self.nepalinumber_negative_float_1_5 * self.nepalinumber_float_1_5,
1076
+ self.nepalinumber_negative_float_2_25,
1077
+ )
1078
+
1079
+ def test_negative_nepalinumber_float_is_multiplicable_to_negative_nepali_number_integer(
1080
+ self,
1081
+ ):
1082
+ self.assertEqual(
1083
+ self.nepalinumber_negative_float_10_1
1084
+ * self.nepalinumber_negative_integer_2,
1085
+ self.nepalinumber_float_20_2,
1086
+ )
1087
+
1088
+ def test_negative_nepalinumber_float_is_multiplicable_to_negative_nepali_number_float(
1089
+ self,
1090
+ ):
1091
+ self.assertEqual(
1092
+ self.nepalinumber_negative_float_1_5 * self.nepalinumber_negative_float_1_5,
1093
+ self.nepalinumber_float_2_25,
1094
+ )
1095
+
1096
+ # string tests
1097
+ def test_nepalinumber_integer_can_be_multiplied_with_string(self):
1098
+ self.assertEqual(
1099
+ self.nepalinumber_integer_2 * self.random_string, 2 * self.random_string
1100
+ )
1101
+
1102
+ def test_string_can_be_multiplied_by_nepalinumber_integer(self):
1103
+ self.assertEqual(
1104
+ self.random_string * self.nepalinumber_integer_2, self.random_string * 2
1105
+ )
1106
+
1107
+ def test_nepalinumber_negative_integer_on_multiplication_with_string_gives_empty_string(
1108
+ self,
1109
+ ):
1110
+ self.assertEqual(self.nepalinumber_negative_integer_2 * self.random_string, "")
1111
+
1112
+ def test_string_can_be_multiplied_by_negative_nepalinumber_integer_to_give_empty_string(
1113
+ self,
1114
+ ):
1115
+ self.assertEqual(self.random_string * self.nepalinumber_negative_integer_2, "")
1116
+
1117
+ def test_nepalinumber_float_throws_error_when_multiplied_with_string(self):
1118
+ with self.assertRaises(TypeError) as te:
1119
+ _ = self.nepalinumber_float_0_1 * self.random_string
1120
+
1121
+ self.assertEqual(
1122
+ str(te.exception),
1123
+ "can't multiply sequence by non-int of type 'nepalinumber'",
1124
+ )
1125
+
1126
+ def test_nepalinumber_float_throws_error_when_multiplied_to_string(self):
1127
+ with self.assertRaises(TypeError) as te:
1128
+ _ = self.random_string * self.nepalinumber_float_0_0_9
1129
+
1130
+ self.assertEqual(
1131
+ str(te.exception),
1132
+ "can't multiply sequence by non-int of type 'nepalinumber'",
1133
+ )
1134
+
1135
+ # multiplication negative testing
1136
+ def test_nepalinumber_throws_error_when_objects_are_multiplied_other_than_int_or_float(
1137
+ self,
1138
+ ):
1139
+ self.assertNotIsInstance(self.random_object, int)
1140
+ self.assertNotIsInstance(self.random_object, float)
1141
+
1142
+ with self.assertRaises(TypeError) as te:
1143
+ _ = self.nepalinumber_integer_10 * self.random_object
1144
+
1145
+ self.assertEqual(
1146
+ str(te.exception),
1147
+ "unsupported operand type(s) for *: 'nepalinumber' and 'type'",
1148
+ )
1149
+
1150
+ def test_nepalinumber_throws_error_when_multiplied_with_objects_other_than_int_or_float(
1151
+ self,
1152
+ ):
1153
+ self.assertNotIsInstance(self.random_object, int)
1154
+ self.assertNotIsInstance(self.random_object, float)
1155
+
1156
+ with self.assertRaises(TypeError) as te:
1157
+ _ = self.random_object + self.nepalinumber_integer_10
1158
+
1159
+ self.assertEqual(
1160
+ str(te.exception),
1161
+ "unsupported operand type(s) for +: 'type' and 'nepalinumber'",
1162
+ )
1163
+
1164
+ # division
1165
+ # nepalinumber positive integer division tests
1166
+ def test_nepalinumber_integer_is_divisible_by_positive_integer(self):
1167
+ self.assertEqual(self.nepalinumber_integer_20 / 2, self.nepalinumber_integer_10)
1168
+
1169
+ def test_nepalinumber_integer_is_divisible_by_positive_float(self):
1170
+ self.assertEqual(
1171
+ self.nepalinumber_integer_10 / 2.5, self.nepalinumber_integer_4
1172
+ )
1173
+
1174
+ def test_nepalinumber_integer_is_divisible_by_negative_integer(self):
1175
+ self.assertEqual(
1176
+ self.nepalinumber_integer_20 / (-2), self.nepalinumber_negative_integer_10
1177
+ )
1178
+
1179
+ def test_nepalinumber_integer_is_divisible_by_negative_float(self):
1180
+ self.assertEqual(
1181
+ self.nepalinumber_integer_10 / (-2.5), self.nepalinumber_negative_integer_4
1182
+ )
1183
+
1184
+ def test_nepalinumber_integer_is_divisible_by_positive_nepali_number_integer(self):
1185
+ self.assertEqual(
1186
+ self.nepalinumber_integer_20 / self.nepalinumber_integer_10,
1187
+ self.nepalinumber_integer_2,
1188
+ )
1189
+
1190
+ def test_nepalinumber_integer_is_divisible_by_positive_nepali_number_float(self):
1191
+ self.assertEqual(
1192
+ self.nepalinumber_integer_10 / self.nepalinumber_float_2_5,
1193
+ self.nepalinumber_integer_4,
1194
+ )
1195
+
1196
+ def test_nepalinumber_integer_is_divisible_by_negative_nepali_number_integer(self):
1197
+ self.assertEqual(
1198
+ self.nepalinumber_integer_20 / self.nepalinumber_negative_integer_10,
1199
+ self.nepalinumber_negative_integer_2,
1200
+ )
1201
+
1202
+ def test_nepalinumber_integer_is_divisible_by_negative_nepali_number_float(self):
1203
+ self.assertEqual(
1204
+ self.nepalinumber_integer_10 / self.nepalinumber_negative_float_2_5,
1205
+ self.nepalinumber_negative_integer_4,
1206
+ )
1207
+
1208
+ # dividing other numbers by nepali number tests
1209
+ def test_positive_integer_is_divisible_by_nepalinumber_integer(self):
1210
+ self.assertEqual(20 / self.nepalinumber_integer_2, self.nepalinumber_integer_10)
1211
+
1212
+ def test_positive_float_is_divisible_by_nepalinumber_integer(self):
1213
+ self.assertEqual(
1214
+ 20.2 / self.nepalinumber_integer_2, self.nepalinumber_float_10_1
1215
+ )
1216
+
1217
+ def test_negative_integer_is_divisible_by_nepalinumber_integer(self):
1218
+ self.assertEqual(
1219
+ -20 / self.nepalinumber_integer_10, self.nepalinumber_negative_integer_2
1220
+ )
1221
+
1222
+ def test_negative_integer_is_divisible_by_negative_nepalinumber_integer_to_give_positive_nepali_integer(
1223
+ self,
1224
+ ):
1225
+ self.assertEqual(
1226
+ (-20) / self.nepalinumber_negative_integer_10, self.nepalinumber_integer_2
1227
+ )
1228
+
1229
+ def test_negative_float_is_divisible_by_nepalinumber_integer(self):
1230
+ self.assertEqual(
1231
+ (-20.2) / self.nepalinumber_integer_2, self.nepalinumber_negative_float_10_1
1232
+ )
1233
+
1234
+ def test_negative_float_is_divisible_by_negative_nepalinumber_integer_to_give_positive_nepali_float(
1235
+ self,
1236
+ ):
1237
+ self.assertEqual(
1238
+ (-20.2) / self.nepalinumber_negative_integer_2, self.nepalinumber_float_10_1
1239
+ )
1240
+
1241
+ # nepalinumber negative integer division tests
1242
+ def test_negative_nepalinumber_integer_is_divisible_by_positive_integer(self):
1243
+ self.assertEqual(
1244
+ self.nepalinumber_negative_integer_10 / 5,
1245
+ self.nepalinumber_negative_integer_2,
1246
+ )
1247
+
1248
+ def test_negative_nepalinumber_integer_is_divisible_by_positive_float(self):
1249
+ self.assertEqual(
1250
+ self.nepalinumber_negative_integer_10 / 2.5,
1251
+ self.nepalinumber_negative_integer_4,
1252
+ )
1253
+
1254
+ def test_negative_nepalinumber_integer_is_divisible_by_negative_integer_to_give_positive_nepali_integer(
1255
+ self,
1256
+ ):
1257
+ self.assertEqual(
1258
+ self.nepalinumber_negative_integer_10 / -5, self.nepalinumber_integer_2
1259
+ )
1260
+
1261
+ def test_negative_nepalinumber_integer_is_divisible_by_negative_integer(self):
1262
+ self.assertEqual(
1263
+ self.nepalinumber_negative_integer_10 / (-5),
1264
+ self.nepalinumber_integer_2,
1265
+ )
1266
+
1267
+ def test_negative_nepalinumber_integer_is_divisible_by_negative_float(self):
1268
+ self.assertEqual(
1269
+ self.nepalinumber_negative_integer_10 / (-2.5),
1270
+ self.nepalinumber_integer_4,
1271
+ )
1272
+
1273
+ def test_negative_nepalinumber_integer_is_divisible_by_negative_float_to_give_positive_nepali_integer(
1274
+ self,
1275
+ ):
1276
+ self.assertEqual(
1277
+ self.nepalinumber_negative_integer_10 / -2.5, self.nepalinumber_integer_4
1278
+ )
1279
+
1280
+ def test_negative_nepalinumber_integer_is_divisible_by_positive_nepali_number_integer(
1281
+ self,
1282
+ ):
1283
+ self.assertEqual(
1284
+ self.nepalinumber_negative_integer_20 / self.nepalinumber_integer_10,
1285
+ self.nepalinumber_negative_integer_2,
1286
+ )
1287
+
1288
+ def test_negative_nepalinumber_integer_is_divisible_by_positive_nepali_number_float(
1289
+ self,
1290
+ ):
1291
+ self.assertEqual(
1292
+ self.nepalinumber_negative_integer_10 / self.nepalinumber_float_2_5,
1293
+ self.nepalinumber_negative_integer_4,
1294
+ )
1295
+
1296
+ def test_negative_nepalinumber_integer_is_divisible_by_negative_nepali_number_integer(
1297
+ self,
1298
+ ):
1299
+ self.assertEqual(
1300
+ self.nepalinumber_negative_integer_20
1301
+ / self.nepalinumber_negative_integer_10,
1302
+ self.nepalinumber_integer_2,
1303
+ )
1304
+
1305
+ def test_negative_nepalinumber_integer_is_divisible_by_negative_nepali_number_integer_to_give_positive_nepali_number(
1306
+ self,
1307
+ ):
1308
+ self.assertEqual(
1309
+ self.nepalinumber_negative_integer_20
1310
+ / self.nepalinumber_negative_integer_2,
1311
+ self.nepalinumber_integer_10,
1312
+ )
1313
+
1314
+ def test_negative_nepalinumber_integer_is_divisible_by_negative_nepali_number_float(
1315
+ self,
1316
+ ):
1317
+ self.assertEqual(
1318
+ self.nepalinumber_negative_integer_10
1319
+ / self.nepalinumber_negative_float_2_5,
1320
+ self.nepalinumber_integer_4,
1321
+ )
1322
+
1323
+ # nepalinumber positive float division tests
1324
+ def test_nepalinumber_float_is_divisible_by_positive_integer(self):
1325
+ self.assertEqual(self.nepalinumber_float_20_2 / 2, self.nepalinumber_float_10_1)
1326
+
1327
+ def test_nepalinumber_float_is_divisible_by_positive_float(self):
1328
+ self.assertEqual(
1329
+ self.nepalinumber_float_20_2 / 10.1, self.nepalinumber_integer_2
1330
+ )
1331
+
1332
+ def test_nepalinumber_float_is_divisible_by_negative_integer(self):
1333
+ self.assertEqual(
1334
+ self.nepalinumber_float_20_2 / (-2), self.nepalinumber_negative_float_10_1
1335
+ )
1336
+
1337
+ def test_nepalinumber_float_is_divisible_by_negative_float(self):
1338
+ self.assertEqual(
1339
+ self.nepalinumber_float_20_2 / (-10.1), self.nepalinumber_negative_integer_2
1340
+ )
1341
+
1342
+ def test_nepalinumber_float_is_divisible_by_positive_nepali_number_integer(self):
1343
+ self.assertEqual(
1344
+ self.nepalinumber_float_20_2 / self.nepalinumber_integer_2,
1345
+ self.nepalinumber_float_10_1,
1346
+ )
1347
+
1348
+ def test_nepalinumber_float_is_divisible_by_positive_nepali_number_float(self):
1349
+ self.assertEqual(
1350
+ self.nepalinumber_float_20_2 / self.nepalinumber_float_10_1,
1351
+ self.nepalinumber_integer_2,
1352
+ )
1353
+
1354
+ def test_nepalinumber_float_is_divisible_by_negative_nepali_number_integer(self):
1355
+ self.assertEqual(
1356
+ self.nepalinumber_float_20_2 / self.nepalinumber_negative_integer_2,
1357
+ self.nepalinumber_negative_float_10_1,
1358
+ )
1359
+
1360
+ def test_nepalinumber_float_is_divisible_by_negative_nepali_number_float(self):
1361
+ self.assertEqual(
1362
+ self.nepalinumber_float_20_2 / self.nepalinumber_negative_float_10_1,
1363
+ self.nepalinumber_negative_integer_2,
1364
+ )
1365
+
1366
+ # nepalinumber negative float division tests
1367
+ def test_negative_nepalinumber_float_is_divisible_by_positive_integer(self):
1368
+ self.assertEqual(
1369
+ self.nepalinumber_negative_float_20_2 / 2,
1370
+ self.nepalinumber_negative_float_10_1,
1371
+ )
1372
+
1373
+ def test_negative_nepalinumber_float_is_divisible_by_positive_float(self):
1374
+ self.assertEqual(
1375
+ self.nepalinumber_negative_float_20_2 / 10.1,
1376
+ self.nepalinumber_negative_integer_2,
1377
+ )
1378
+
1379
+ def test_negative_nepalinumber_float_is_divisible_by_negative_integer(self):
1380
+ self.assertEqual(
1381
+ self.nepalinumber_negative_float_20_2 / (-2),
1382
+ self.nepalinumber_float_10_1,
1383
+ )
1384
+
1385
+ def test_negative_nepalinumber_float_is_divisible_by_negative_float(self):
1386
+ self.assertEqual(
1387
+ self.nepalinumber_negative_float_20_2 / (-10.1),
1388
+ self.nepalinumber_integer_2,
1389
+ )
1390
+
1391
+ def test_negative_nepalinumber_float_is_divisible_by_positive_nepali_number_integer(
1392
+ self,
1393
+ ):
1394
+ self.assertEqual(
1395
+ self.nepalinumber_negative_float_20_2 / self.nepalinumber_integer_2,
1396
+ self.nepalinumber_negative_float_10_1,
1397
+ )
1398
+
1399
+ def test_negative_nepalinumber_float_is_divisible_by_positive_nepali_number_float(
1400
+ self,
1401
+ ):
1402
+ self.assertEqual(
1403
+ self.nepalinumber_negative_float_20_2 / self.nepalinumber_float_10_1,
1404
+ self.nepalinumber_negative_integer_2,
1405
+ )
1406
+
1407
+ def test_negative_nepalinumber_float_is_divisible_by_negative_nepali_number_integer_to_give_positive_nepali_number(
1408
+ self,
1409
+ ):
1410
+ self.assertEqual(
1411
+ self.nepalinumber_negative_float_20_2
1412
+ / self.nepalinumber_negative_integer_2,
1413
+ self.nepalinumber_float_10_1,
1414
+ )
1415
+
1416
+ def test_negative_nepalinumber_float_is_divisible_by_negative_nepali_number_float(
1417
+ self,
1418
+ ):
1419
+ self.assertEqual(
1420
+ self.nepalinumber_negative_float_20_2
1421
+ / self.nepalinumber_negative_float_10_1,
1422
+ self.nepalinumber_integer_2,
1423
+ )
1424
+
1425
+ # division negative testing
1426
+ def test_nepalinumber_throws_error_when_divided_by_objects_other_than_int_or_float(
1427
+ self,
1428
+ ):
1429
+ self.assertNotIsInstance(self.random_object, int)
1430
+ self.assertNotIsInstance(self.random_object, float)
1431
+
1432
+ with self.assertRaises(TypeError) as te:
1433
+ _ = self.nepalinumber_integer_10 / self.random_object
1434
+
1435
+ self.assertEqual(
1436
+ str(te.exception),
1437
+ "unsupported operand type(s) for /: 'nepalinumber' and 'type'",
1438
+ )
1439
+
1440
+ def test_nepalinumber_throws_error_when_divided_to_objects_other_than_int_or_float(
1441
+ self,
1442
+ ):
1443
+ self.assertNotIsInstance(self.random_object, int)
1444
+ self.assertNotIsInstance(self.random_object, float)
1445
+
1446
+ with self.assertRaises(TypeError) as te:
1447
+ _ = self.random_object / self.nepalinumber_integer_10
1448
+
1449
+ self.assertEqual(
1450
+ str(te.exception),
1451
+ "unsupported operand type(s) for /: 'type' and 'nepalinumber'",
1452
+ )
1453
+
1454
+ def test_nepalinumber_throws_error_when_divided_by_zero(self):
1455
+ with self.assertRaises(ZeroDivisionError) as ze:
1456
+ _ = self.nepalinumber_integer_2 / 0
1457
+
1458
+ self.assertEqual(str(ze.exception), "division by zero")
1459
+
1460
+ def test_nepalinumber_throws_error_when_zero_nepalinumber_divides_other_numbers(
1461
+ self,
1462
+ ):
1463
+ with self.assertRaises(ZeroDivisionError) as ze:
1464
+ _ = 12 / self.nepalinumber_zero
1465
+
1466
+ self.assertEqual(str(ze.exception), "division by zero")
1467
+
1468
+ def test_nepalinumber_throws_error_when_divided_by_zero_nepalinumber(self):
1469
+ with self.assertRaises(ZeroDivisionError) as ze:
1470
+ _ = self.nepalinumber_integer_2 / self.nepalinumber_zero
1471
+
1472
+ self.assertEqual(str(ze.exception), "division by zero")
1473
+
1474
+ # floor division
1475
+ # nepalinumber positive integer division tests
1476
+ def test_nepalinumber_integer_is_floor_divisible_by_positive_integer(self):
1477
+ self.assertEqual(
1478
+ self.nepalinumber_integer_20 // 2, self.nepalinumber_integer_10
1479
+ )
1480
+
1481
+ def test_nepalinumber_integer_is_floor_divisible_by_positive_float(self):
1482
+ self.assertEqual(
1483
+ self.nepalinumber_integer_10 // 2.5, self.nepalinumber_integer_4
1484
+ )
1485
+
1486
+ def test_nepalinumber_integer_is_floor_divisible_by_negative_integer(self):
1487
+ self.assertEqual(
1488
+ self.nepalinumber_integer_20 // (-2), self.nepalinumber_negative_integer_10
1489
+ )
1490
+
1491
+ def test_nepalinumber_integer_is_floor_divisible_by_negative_float(self):
1492
+ self.assertEqual(
1493
+ self.nepalinumber_integer_10 // (-2.5), self.nepalinumber_negative_integer_4
1494
+ )
1495
+
1496
+ def test_nepalinumber_integer_is_floor_divisible_by_positive_nepali_number_integer(
1497
+ self,
1498
+ ):
1499
+ self.assertEqual(
1500
+ self.nepalinumber_integer_20 // self.nepalinumber_integer_10,
1501
+ self.nepalinumber_integer_2,
1502
+ )
1503
+
1504
+ def test_nepalinumber_integer_is_floor_divisible_by_positive_nepali_number_float(
1505
+ self,
1506
+ ):
1507
+ self.assertEqual(
1508
+ self.nepalinumber_integer_10 / self.nepalinumber_float_2_5,
1509
+ self.nepalinumber_integer_4,
1510
+ )
1511
+
1512
+ def test_nepalinumber_integer_is_floor_divisible_by_negative_nepali_number_integer(
1513
+ self,
1514
+ ):
1515
+ self.assertEqual(
1516
+ self.nepalinumber_integer_20 // self.nepalinumber_negative_integer_10,
1517
+ self.nepalinumber_negative_integer_2,
1518
+ )
1519
+
1520
+ def test_nepalinumber_integer_is_floor_divisible_by_negative_nepali_number_float(
1521
+ self,
1522
+ ):
1523
+ self.assertEqual(
1524
+ self.nepalinumber_integer_10 // self.nepalinumber_negative_float_2_5,
1525
+ self.nepalinumber_negative_integer_4,
1526
+ )
1527
+
1528
+ # dividing other numbers by nepali number tests
1529
+ def test_positive_integer_is_floor_divisible_by_nepalinumber_integer(self):
1530
+ self.assertEqual(
1531
+ 20 // self.nepalinumber_integer_2, self.nepalinumber_integer_10
1532
+ )
1533
+
1534
+ def test_positive_float_is_floor_divisible_by_nepalinumber_integer(self):
1535
+ self.assertEqual(
1536
+ 20.2 // self.nepalinumber_integer_2, self.nepalinumber_integer_10
1537
+ )
1538
+
1539
+ def test_negative_integer_is_floor_divisible_by_nepalinumber_integer(self):
1540
+ self.assertEqual(
1541
+ -20 // self.nepalinumber_integer_10, self.nepalinumber_negative_integer_2
1542
+ )
1543
+
1544
+ def test_negative_integer_is_floor_divisible_by_negative_nepalinumber_integer_to_give_positive_nepali_integer(
1545
+ self,
1546
+ ):
1547
+ self.assertEqual(
1548
+ (-20) // self.nepalinumber_negative_integer_10, self.nepalinumber_integer_2
1549
+ )
1550
+
1551
+ def test_negative_float_is_floor_divisible_by_nepalinumber_integer(self):
1552
+ self.assertEqual(
1553
+ (-19.2) // self.nepalinumber_integer_2,
1554
+ self.nepalinumber_negative_integer_10,
1555
+ )
1556
+
1557
+ def test_negative_float_is_floor_divisible_by_negative_nepalinumber_integer_to_give_positive_nepali_integer(
1558
+ self,
1559
+ ):
1560
+ self.assertEqual(
1561
+ (-20.2) // self.nepalinumber_negative_integer_2,
1562
+ self.nepalinumber_integer_10,
1563
+ )
1564
+
1565
+ # nepalinumber negative integer division tests
1566
+ def test_negative_nepalinumber_integer_is_floor_divisible_by_positive_integer(self):
1567
+ self.assertEqual(
1568
+ self.nepalinumber_negative_integer_10 // 5,
1569
+ self.nepalinumber_negative_integer_2,
1570
+ )
1571
+
1572
+ def test_negative_nepalinumber_integer_is_floor_divisible_by_positive_float(self):
1573
+ self.assertEqual(
1574
+ self.nepalinumber_negative_integer_10 // 2.5,
1575
+ self.nepalinumber_negative_integer_4,
1576
+ )
1577
+
1578
+ def test_negative_nepalinumber_integer_is_floor_divisible_by_negative_integer_to_give_positive_nepali_integer(
1579
+ self,
1580
+ ):
1581
+ self.assertEqual(
1582
+ self.nepalinumber_negative_integer_10 // -5, self.nepalinumber_integer_2
1583
+ )
1584
+
1585
+ def test_negative_nepalinumber_integer_is_floor_divisible_by_negative_integer(self):
1586
+ self.assertEqual(
1587
+ self.nepalinumber_negative_integer_10 // (-5),
1588
+ self.nepalinumber_integer_2,
1589
+ )
1590
+
1591
+ def test_negative_nepalinumber_integer_is_floor_divisible_by_negative_float(self):
1592
+ self.assertEqual(
1593
+ self.nepalinumber_negative_integer_10 // (-2.5),
1594
+ self.nepalinumber_integer_4,
1595
+ )
1596
+
1597
+ def test_negative_nepalinumber_integer_is_floor_divisible_by_negative_float_to_give_positive_nepali_integer(
1598
+ self,
1599
+ ):
1600
+ self.assertEqual(
1601
+ self.nepalinumber_negative_integer_10 // -2.5, self.nepalinumber_integer_4
1602
+ )
1603
+
1604
+ def test_negative_nepalinumber_integer_is_floor_divisible_by_positive_nepali_number_integer(
1605
+ self,
1606
+ ):
1607
+ self.assertEqual(
1608
+ self.nepalinumber_negative_integer_20 // self.nepalinumber_integer_10,
1609
+ self.nepalinumber_negative_integer_2,
1610
+ )
1611
+
1612
+ def test_negative_nepalinumber_integer_is_floor_divisible_by_positive_nepali_number_float(
1613
+ self,
1614
+ ):
1615
+ self.assertEqual(
1616
+ self.nepalinumber_negative_integer_10 // self.nepalinumber_float_2_5,
1617
+ self.nepalinumber_negative_integer_4,
1618
+ )
1619
+
1620
+ def test_negative_nepalinumber_integer_is_floor_divisible_by_negative_nepali_number_integer(
1621
+ self,
1622
+ ):
1623
+ self.assertEqual(
1624
+ self.nepalinumber_negative_integer_20
1625
+ // self.nepalinumber_negative_integer_10,
1626
+ self.nepalinumber_integer_2,
1627
+ )
1628
+
1629
+ def test_negative_nepalinumber_integer_is_floor_divisible_by_negative_nepali_number_integer_to_give_positive_nepali_number(
1630
+ self,
1631
+ ):
1632
+ self.assertEqual(
1633
+ self.nepalinumber_negative_integer_20
1634
+ // self.nepalinumber_negative_integer_2,
1635
+ self.nepalinumber_integer_10,
1636
+ )
1637
+
1638
+ def test_negative_nepalinumber_integer_is_floor_divisible_by_negative_nepali_number_float(
1639
+ self,
1640
+ ):
1641
+ self.assertEqual(
1642
+ self.nepalinumber_negative_integer_10
1643
+ // self.nepalinumber_negative_float_2_5,
1644
+ self.nepalinumber_integer_4,
1645
+ )
1646
+
1647
+ # nepalinumber positive float division tests
1648
+ def test_nepalinumber_float_is_floor_divisible_by_positive_integer(self):
1649
+ self.assertEqual(
1650
+ self.nepalinumber_float_20_2 // 2, self.nepalinumber_integer_10
1651
+ )
1652
+
1653
+ def test_nepalinumber_float_is_floor_divisible_by_positive_float(self):
1654
+ self.assertEqual(
1655
+ self.nepalinumber_float_20_2 // 10.1, self.nepalinumber_integer_2
1656
+ )
1657
+
1658
+ def test_nepalinumber_float_is_floor_divisible_by_negative_integer(self):
1659
+ self.assertEqual(
1660
+ self.nepalinumber_float_20_2 // (-2), self.nepalinumber_negative_integer_11
1661
+ )
1662
+
1663
+ def test_nepalinumber_float_is_floor_divisible_by_negative_float(self):
1664
+ self.assertEqual(
1665
+ self.nepalinumber_float_20_2 // (-10.1),
1666
+ self.nepalinumber_negative_integer_2,
1667
+ )
1668
+
1669
+ def test_nepalinumber_float_is_floor_divisible_by_positive_nepali_number_integer(
1670
+ self,
1671
+ ):
1672
+ self.assertEqual(
1673
+ self.nepalinumber_float_20_2 // self.nepalinumber_integer_2,
1674
+ self.nepalinumber_integer_10,
1675
+ )
1676
+
1677
+ def test_nepalinumber_float_is_floor_divisible_by_positive_nepali_number_float(
1678
+ self,
1679
+ ):
1680
+ self.assertEqual(
1681
+ self.nepalinumber_float_20_2 // self.nepalinumber_float_10_1,
1682
+ self.nepalinumber_integer_2,
1683
+ )
1684
+
1685
+ def test_nepalinumber_float_is_floor_divisible_by_negative_nepali_number_integer(
1686
+ self,
1687
+ ):
1688
+ self.assertEqual(
1689
+ self.nepalinumber_float_20_2 // self.nepalinumber_negative_integer_2,
1690
+ self.nepalinumber_negative_integer_11,
1691
+ )
1692
+
1693
+ def test_nepalinumber_float_is_floor_divisible_by_negative_nepali_number_float(
1694
+ self,
1695
+ ):
1696
+ self.assertEqual(
1697
+ self.nepalinumber_float_20_2 // self.nepalinumber_negative_float_10_1,
1698
+ self.nepalinumber_negative_integer_2,
1699
+ )
1700
+
1701
+ # nepalinumber negative float division tests
1702
+ def test_negative_nepalinumber_float_is_floor_divisible_by_positive_integer(self):
1703
+ self.assertEqual(
1704
+ self.nepalinumber_negative_float_20_2 // 2,
1705
+ self.nepalinumber_negative_integer_11,
1706
+ )
1707
+
1708
+ def test_negative_nepalinumber_float_is_floor_divisible_by_positive_float(self):
1709
+ self.assertEqual(
1710
+ self.nepalinumber_negative_float_20_2 // 10.1,
1711
+ self.nepalinumber_negative_integer_2,
1712
+ )
1713
+
1714
+ def test_negative_nepalinumber_float_is_floor_divisible_by_negative_integer(self):
1715
+ self.assertEqual(
1716
+ self.nepalinumber_negative_float_20_2 // (-2),
1717
+ self.nepalinumber_integer_10,
1718
+ )
1719
+
1720
+ def test_negative_nepalinumber_float_is_floor_divisible_by_negative_float(self):
1721
+ self.assertEqual(
1722
+ self.nepalinumber_negative_float_20_2 // (-10.1),
1723
+ self.nepalinumber_integer_2,
1724
+ )
1725
+
1726
+ def test_negative_nepalinumber_float_is_floor_divisible_by_positive_nepali_number_integer(
1727
+ self,
1728
+ ):
1729
+ self.assertEqual(
1730
+ self.nepalinumber_negative_float_20_2 // self.nepalinumber_integer_2,
1731
+ self.nepalinumber_negative_integer_11,
1732
+ )
1733
+
1734
+ def test_negative_nepalinumber_float_is_floor_divisible_by_positive_nepali_number_float(
1735
+ self,
1736
+ ):
1737
+ self.assertEqual(
1738
+ self.nepalinumber_negative_float_20_2 // self.nepalinumber_float_10_1,
1739
+ self.nepalinumber_negative_integer_2,
1740
+ )
1741
+
1742
+ def test_negative_nepalinumber_float_is_floor_divisible_by_negative_nepali_number_integer_to_give_positive_nepali_number(
1743
+ self,
1744
+ ):
1745
+ self.assertEqual(
1746
+ self.nepalinumber_negative_float_20_2
1747
+ // self.nepalinumber_negative_integer_2,
1748
+ self.nepalinumber_integer_10,
1749
+ )
1750
+
1751
+ def test_negative_nepalinumber_float_is_floor_divisible_by_negative_nepali_number_float(
1752
+ self,
1753
+ ):
1754
+ self.assertEqual(
1755
+ self.nepalinumber_negative_float_20_2
1756
+ // self.nepalinumber_negative_float_10_1,
1757
+ self.nepalinumber_integer_2,
1758
+ )
1759
+
1760
+ # division negative testing
1761
+ def test_nepalinumber_throws_error_when_floor_divided_by_objects_other_than_int_or_float(
1762
+ self,
1763
+ ):
1764
+ self.assertNotIsInstance(self.random_object, int)
1765
+ self.assertNotIsInstance(self.random_object, float)
1766
+
1767
+ with self.assertRaises(TypeError) as te:
1768
+ _ = self.nepalinumber_integer_10 // self.random_object
1769
+
1770
+ self.assertEqual(
1771
+ str(te.exception),
1772
+ "unsupported operand type(s) for //: 'nepalinumber' and 'type'",
1773
+ )
1774
+
1775
+ with self.assertRaises(TypeError) as te:
1776
+ _ = self.nepalinumber_float_10_1 // self.random_object
1777
+
1778
+ self.assertEqual(
1779
+ str(te.exception),
1780
+ "unsupported operand type(s) for //: 'nepalinumber' and 'type'",
1781
+ )
1782
+
1783
+ def test_nepalinumber_throws_error_when_floor_divided_to_objects_other_than_int_or_float(
1784
+ self,
1785
+ ):
1786
+ self.assertNotIsInstance(self.random_object, int)
1787
+ self.assertNotIsInstance(self.random_object, float)
1788
+
1789
+ with self.assertRaises(TypeError) as te:
1790
+ _ = self.random_object // self.nepalinumber_integer_10
1791
+
1792
+ self.assertEqual(
1793
+ str(te.exception),
1794
+ "unsupported operand type(s) for //: 'type' and 'nepalinumber'",
1795
+ )
1796
+
1797
+ with self.assertRaises(TypeError) as te:
1798
+ _ = self.random_object // self.nepalinumber_float_10_1
1799
+
1800
+ self.assertEqual(
1801
+ str(te.exception),
1802
+ "unsupported operand type(s) for //: 'type' and 'nepalinumber'",
1803
+ )
1804
+
1805
+ def test_nepalinumber_throws_error_when_floor_floor_divided_by_zero(self):
1806
+ with self.assertRaises(ZeroDivisionError) as ze:
1807
+ _ = self.nepalinumber_integer_2 // 0
1808
+
1809
+ self.assertEqual(str(ze.exception), "integer division or modulo by zero")
1810
+
1811
+ with self.assertRaises(ZeroDivisionError) as ze:
1812
+ _ = self.nepalinumber_float_10_1 // 0
1813
+
1814
+ self.assertEqual(str(ze.exception), "float floor division by zero")
1815
+
1816
+ def test_nepalinumber_throws_error_when_zero_nepalinumber_floor_divides_other_numbers(
1817
+ self,
1818
+ ):
1819
+ with self.assertRaises(ZeroDivisionError) as ze:
1820
+ _ = 12 // self.nepalinumber_zero
1821
+
1822
+ self.assertEqual(str(ze.exception), "integer division or modulo by zero")
1823
+
1824
+ with self.assertRaises(ZeroDivisionError) as ze:
1825
+ _ = 12.1 // self.nepalinumber_zero
1826
+
1827
+ self.assertEqual(str(ze.exception), "float floor division by zero")
1828
+
1829
+ def test_nepalinumber_throws_error_when_floor_divided_by_zero_nepalinumber(self):
1830
+ with self.assertRaises(ZeroDivisionError) as ze:
1831
+ _ = self.nepalinumber_integer_2 // self.nepalinumber_zero
1832
+
1833
+ self.assertEqual(str(ze.exception), "integer division or modulo by zero")
1834
+
1835
+ with self.assertRaises(ZeroDivisionError) as ze:
1836
+ _ = self.nepalinumber_float_10_1 // self.nepalinumber_zero
1837
+
1838
+ self.assertEqual(str(ze.exception), "float floor division by zero")
1839
+
1840
+ # mod
1841
+ # nepalinumber positive integer modulo tests
1842
+ def test_nepalinumber_integer_can_be_modulo_divided_by_positive_integer(self):
1843
+ self.assertEqual(self.nepalinumber_integer_10 % 4, self.nepalinumber_integer_2)
1844
+
1845
+ def test_nepalinumber_integer_can_be_modulo_divided_by_positive_float(self):
1846
+ self.assertEqual(self.nepalinumber_integer_10 % 2.5, self.nepalinumber_zero)
1847
+
1848
+ def test_nepalinumber_integer_can_be_modulo_divided_by_negative_integer(self):
1849
+ self.assertEqual(
1850
+ self.nepalinumber_integer_10 % -4, self.nepalinumber_negative_integer_2
1851
+ )
1852
+
1853
+ def test_nepalinumber_integer_can_be_modulo_divided_by_negative_float(self):
1854
+ self.assertEqual(
1855
+ self.nepalinumber_integer_10 % -2.25, self.nepalinumber_negative_float_1_25
1856
+ )
1857
+
1858
+ def test_nepalinumber_integer_can_be_modulo_divided_by_positive_nepalinumber_integer(
1859
+ self,
1860
+ ):
1861
+ self.assertEqual(
1862
+ self.nepalinumber_integer_10 % self.nepalinumber_integer_2,
1863
+ self.nepalinumber_zero,
1864
+ )
1865
+
1866
+ def test_nepalinumber_integer_can_be_modulo_divided_by_positive_nepalinumber_float(
1867
+ self,
1868
+ ):
1869
+ self.assertEqual(
1870
+ self.nepalinumber_integer_10 % self.nepalinumber_float_2_5,
1871
+ self.nepalinumber_zero,
1872
+ )
1873
+
1874
+ def test_nepalinumber_integer_can_be_modulo_divided_by_negative_nepalinumber_integer(
1875
+ self,
1876
+ ):
1877
+ self.assertEqual(
1878
+ self.nepalinumber_integer_10 % self.nepalinumber_negative_integer_20,
1879
+ self.nepalinumber_negative_integer_10,
1880
+ )
1881
+
1882
+ def test_nepalinumber_integer_can_be_modulo_divided_by_negative_nepalinumber_float(
1883
+ self,
1884
+ ):
1885
+ self.assertEqual(
1886
+ self.nepalinumber_integer_10 % self.nepalinumber_negative_float_15_5,
1887
+ self.nepalinumber_negative_float_5_5,
1888
+ )
1889
+
1890
+ # nepalinumber other numbers modulo divided by positive nepalinumber tests
1891
+ def test_positive_integer_can_be_modulo_divided_by_positive_nepalinumber_integer(
1892
+ self,
1893
+ ):
1894
+ self.assertEqual(4 % self.nepalinumber_integer_10, self.nepalinumber_integer_4)
1895
+
1896
+ def test_positive_float_can_be_modulo_divided_by_positive_nepalinumber_integer(
1897
+ self,
1898
+ ):
1899
+ self.assertEqual(
1900
+ 15.5 % self.nepalinumber_integer_10, self.nepalinumber_float_5_5
1901
+ )
1902
+
1903
+ def test_negative_integer_can_be_modulo_divided_by_positive_nepalinumber_integer(
1904
+ self,
1905
+ ):
1906
+ self.assertEqual(-5 % self.nepalinumber_integer_10, self.nepalinumber_integer_5)
1907
+
1908
+ def test_negative_float_can_be_modulo_divided_by_positive_nepalinumber_integer(
1909
+ self,
1910
+ ):
1911
+ self.assertEqual(
1912
+ -20.5 % self.nepalinumber_integer_2, self.nepalinumber_float_1_5
1913
+ )
1914
+
1915
+ def test_positive_nepalinumber_float_can_be_modulo_divided_by_positive_nepalinumber_integer(
1916
+ self,
1917
+ ):
1918
+ self.assertEqual(
1919
+ self.nepalinumber_float_10_1 % self.nepalinumber_integer_5,
1920
+ self.nepalinumber_float_0_0_9,
1921
+ )
1922
+
1923
+ def test_negative_nepalinumber_integer_can_be_modulo_divided_by_positive_nepalinumber_integer(
1924
+ self,
1925
+ ):
1926
+ self.assertEqual(
1927
+ self.nepalinumber_negative_integer_10 % self.nepalinumber_integer_20,
1928
+ self.nepalinumber_integer_10,
1929
+ )
1930
+
1931
+ def test_negative_nepalinumber_float_can_be_modulo_divided_by_positive_nepalinumber_integer(
1932
+ self,
1933
+ ):
1934
+ self.assertEqual(
1935
+ self.nepalinumber_negative_float_15_5 % self.nepalinumber_integer_10,
1936
+ self.nepalinumber_float_4_5,
1937
+ )
1938
+
1939
+ # nepalinumber negative integer modulo tests
1940
+ def test_negative_nepalinumber_integer_can_be_modulo_divided_by_positive_integer(
1941
+ self,
1942
+ ):
1943
+ self.assertEqual(
1944
+ self.nepalinumber_negative_integer_10 % 4, self.nepalinumber_integer_2
1945
+ )
1946
+
1947
+ def test_negative_nepalinumber_integer_can_be_modulo_divided_by_positive_float(
1948
+ self,
1949
+ ):
1950
+ self.assertEqual(
1951
+ self.nepalinumber_negative_integer_10 % 2.5, self.nepalinumber_zero
1952
+ )
1953
+
1954
+ def test_negative_nepalinumber_integer_can_be_modulo_divided_by_negative_integer(
1955
+ self,
1956
+ ):
1957
+ self.assertEqual(
1958
+ self.nepalinumber_negative_integer_10 % -4,
1959
+ self.nepalinumber_negative_integer_2,
1960
+ )
1961
+
1962
+ def test_negative_nepalinumber_integer_can_be_modulo_divided_by_negative_float(
1963
+ self,
1964
+ ):
1965
+ self.assertEqual(
1966
+ self.nepalinumber_negative_integer_10 % -2.5, self.nepalinumber_zero
1967
+ )
1968
+
1969
+ def test_negative_nepalinumber_integer_can_be_modulo_divided_by_positive_nepalinumber_float(
1970
+ self,
1971
+ ):
1972
+ self.assertEqual(
1973
+ self.nepalinumber_negative_integer_10 % self.nepalinumber_float_2_5,
1974
+ self.nepalinumber_zero,
1975
+ )
1976
+
1977
+ def test_negative_nepalinumber_integer_can_be_modulo_divided_by_negative_nepalinumber_integer(
1978
+ self,
1979
+ ):
1980
+ self.assertEqual(
1981
+ self.nepalinumber_negative_integer_10
1982
+ % self.nepalinumber_negative_integer_20,
1983
+ self.nepalinumber_negative_integer_10,
1984
+ )
1985
+
1986
+ def test_negative_nepalinumber_integer_can_be_modulo_divided_by_negative_nepalinumber_float(
1987
+ self,
1988
+ ):
1989
+ self.assertEqual(
1990
+ self.nepalinumber_negative_integer_10
1991
+ % self.nepalinumber_negative_float_15_5,
1992
+ self.nepalinumber_negative_integer_10,
1993
+ )
1994
+
1995
+ # nepalinumber other numbers modulo divided by negative nepalinumber tests
1996
+ def test_positive_integer_can_be_modulo_divided_by_negative_nepalinumber_integer(
1997
+ self,
1998
+ ):
1999
+ self.assertEqual(
2000
+ 5 % self.nepalinumber_negative_integer_10,
2001
+ self.nepalinumber_negative_integer_5,
2002
+ )
2003
+
2004
+ def test_positive_float_can_be_modulo_divided_by_negative_nepalinumber_integer(
2005
+ self,
2006
+ ):
2007
+ self.assertEqual(
2008
+ 15.5 % self.nepalinumber_negative_integer_10,
2009
+ self.nepalinumber_negative_float_4_5,
2010
+ )
2011
+
2012
+ def test_negative_integer_can_be_modulo_divided_negative_nepalinumber_integer(self):
2013
+ self.assertEqual(
2014
+ -5 % self.nepalinumber_negative_integer_10,
2015
+ self.nepalinumber_negative_integer_5,
2016
+ )
2017
+
2018
+ def test_negative_float_can_be_modulo_divided_by_negative_nepalinumber_integer(
2019
+ self,
2020
+ ):
2021
+ self.assertEqual(
2022
+ -5.5 % self.nepalinumber_negative_integer_2,
2023
+ self.nepalinumber_negative_float_1_5,
2024
+ )
2025
+
2026
+ def test_positive_nepalinumber_float_can_be_modulo_divided_by_negative_nepalinumber_integer(
2027
+ self,
2028
+ ):
2029
+ self.assertEqual(
2030
+ self.nepalinumber_float_4_5 % self.nepalinumber_negative_integer_10,
2031
+ self.nepalinumber_negative_float_5_5,
2032
+ )
2033
+
2034
+ def test_negative_nepalinumber_float_can_be_modulo_divided_by_negative_nepalinumber_integer(
2035
+ self,
2036
+ ):
2037
+ self.assertEqual(
2038
+ self.nepalinumber_negative_float_15_5
2039
+ % self.nepalinumber_negative_integer_10,
2040
+ self.nepalinumber_negative_float_5_5,
2041
+ )
2042
+
2043
+ # nepalinumber positive float modulo tests
2044
+ def test_nepalinumber_float_can_be_modulo_divided_by_positive_integer(self):
2045
+ self.assertEqual(self.nepalinumber_float_4_5 % 2, self.nepalinumber_float_0_5)
2046
+
2047
+ def test_nepalinumber_float_can_be_modulo_divided_by_positive_float(self):
2048
+ self.assertEqual(self.nepalinumber_float_4_5 % 2.5, self.nepalinumber_integer_2)
2049
+
2050
+ def test_nepalinumber_float_can_be_modulo_divided_by_negative_integer(self):
2051
+ self.assertEqual(
2052
+ self.nepalinumber_float_4_5 % -2, self.nepalinumber_negative_float_1_5
2053
+ )
2054
+
2055
+ def test_nepalinumber_float_can_be_modulo_divided_by_negative_float(self):
2056
+ self.assertEqual(self.nepalinumber_float_4_5 % -2.25, self.nepalinumber_zero)
2057
+
2058
+ def test_nepalinumber_float_can_be_modulo_divided_by_positive_nepalinumber_integer(
2059
+ self,
2060
+ ):
2061
+ self.assertEqual(
2062
+ self.nepalinumber_float_4_5 % self.nepalinumber_integer_2,
2063
+ self.nepalinumber_float_0_5,
2064
+ )
2065
+
2066
+ def test_nepalinumber_float_can_be_modulo_divided_by_positive_nepalinumber_float(
2067
+ self,
2068
+ ):
2069
+ self.assertEqual(
2070
+ self.nepalinumber_float_4_5 % self.nepalinumber_float_2_25,
2071
+ self.nepalinumber_zero,
2072
+ )
2073
+
2074
+ def test_nepalinumber_float_can_be_modulo_divided_by_negative_nepalinumber_integer(
2075
+ self,
2076
+ ):
2077
+ self.assertEqual(
2078
+ self.nepalinumber_float_4_5 % self.nepalinumber_negative_integer_20,
2079
+ self.nepalinumber_negative_float_15_5,
2080
+ )
2081
+
2082
+ def test_nepalinumber_float_can_be_modulo_divided_by_negative_nepalinumber_float(
2083
+ self,
2084
+ ):
2085
+ self.assertEqual(
2086
+ self.nepalinumber_float_4_5 % self.nepalinumber_negative_float_15_5,
2087
+ self.nepalinumber_negative_integer_11,
2088
+ )
2089
+
2090
+ # nepalinumber other numbers modulo divided by positive nepalinumber float tests
2091
+ def test_positive_nepalinumber_float_can_be_modulo_divided_by_positive_nepalinumber_float(
2092
+ self,
2093
+ ):
2094
+ self.assertEqual(
2095
+ self.nepalinumber_float_10_1 % self.nepalinumber_integer_5,
2096
+ self.nepalinumber_float_0_0_9,
2097
+ )
2098
+
2099
+ # nepalinumber negative float modulo tests
2100
+ def test_negative_nepalinumber_float_can_be_modulo_divided_by_positive_integer(
2101
+ self,
2102
+ ):
2103
+ self.assertEqual(
2104
+ self.nepalinumber_negative_float_15_5 % 4, self.nepalinumber_float_0_5
2105
+ )
2106
+
2107
+ def test_negative_nepalinumber_float_can_be_modulo_divided_by_positive_float(self):
2108
+ self.assertEqual(
2109
+ self.nepalinumber_negative_float_15_5 % 2.5, self.nepalinumber_integer_2
2110
+ )
2111
+
2112
+ def test_negative_nepalinumber_float_can_be_modulo_divided_by_negative_integer(
2113
+ self,
2114
+ ):
2115
+ self.assertEqual(
2116
+ self.nepalinumber_negative_float_4_5 % -20,
2117
+ self.nepalinumber_negative_float_4_5,
2118
+ )
2119
+
2120
+ def test_negative_nepalinumber_float_can_be_modulo_divided_by_negative_float(self):
2121
+ self.assertEqual(
2122
+ self.nepalinumber_negative_float_4_5 % -2.5,
2123
+ self.nepalinumber_negative_integer_2,
2124
+ )
2125
+
2126
+ def test_negative_nepalinumber_float_can_be_modulo_divided_by_positive_nepalinumber_float(
2127
+ self,
2128
+ ):
2129
+ self.assertEqual(
2130
+ self.nepalinumber_negative_float_15_5 % self.nepalinumber_float_2_5,
2131
+ self.nepalinumber_integer_2,
2132
+ )
2133
+
2134
+ def test_negative_nepalinumber_float_can_be_modulo_divided_by_negative_nepalinumber_integer_2(
2135
+ self,
2136
+ ):
2137
+ self.assertEqual(
2138
+ self.nepalinumber_negative_float_4_5
2139
+ % self.nepalinumber_negative_integer_20,
2140
+ self.nepalinumber_negative_float_4_5,
2141
+ )
2142
+
2143
+ # nepalinumber other integers modulo divided by negative nepalinumber float tests
2144
+ def test_positive_integer_can_be_modulo_divided_by_negative_nepalinumber_float(
2145
+ self,
2146
+ ):
2147
+ self.assertEqual(
2148
+ 5 % self.nepalinumber_negative_float_2_5, self.nepalinumber_zero
2149
+ )
2150
+
2151
+ def test_positive_float_can_be_modulo_divided_by_negative_nepalinumber_float(self):
2152
+ self.assertEqual(
2153
+ 15.5 % self.nepalinumber_negative_float_15_5, self.nepalinumber_zero
2154
+ )
2155
+
2156
+ def test_negative_integer_can_be_modulo_divided_by_negative_nepalinumber_float(
2157
+ self,
2158
+ ):
2159
+ self.assertEqual(
2160
+ -5 % self.nepalinumber_negative_float_2_5, self.nepalinumber_zero
2161
+ )
2162
+
2163
+ def test_negative_float_can_be_modulo_divided_by_negative_nepalinumber_float(self):
2164
+ self.assertEqual(
2165
+ -5.5 % self.nepalinumber_negative_float_15_5,
2166
+ self.nepalinumber_negative_float_5_5,
2167
+ )
2168
+
2169
+ def test_positive_nepalinumber_float_can_be_modulo_divided_by_negative_nepalinumber_float(
2170
+ self,
2171
+ ):
2172
+ self.assertEqual(
2173
+ self.nepalinumber_float_4_5 % self.nepalinumber_negative_float_15_5,
2174
+ self.nepalinumber_negative_integer_11,
2175
+ )
2176
+
2177
+ # modulo negative_testing
2178
+ def test_nepalinumber_throws_error_when_object_other_than_int_or_float_modulo_divide(
2179
+ self,
2180
+ ):
2181
+ self.assertNotIsInstance(self.random_object, int)
2182
+ self.assertNotIsInstance(self.random_object, float)
2183
+
2184
+ with self.assertRaises(TypeError) as te:
2185
+ _ = self.nepalinumber_integer_10 % self.random_object
2186
+
2187
+ self.assertEqual(
2188
+ str(te.exception),
2189
+ "unsupported operand type(s) for %: 'nepalinumber' and 'type'",
2190
+ )
2191
+
2192
+ def test_nepalinumber_throws_error_when_modulo_divided_with_objects_other_than_int_or_float(
2193
+ self,
2194
+ ):
2195
+ self.assertNotIsInstance(self.random_object, int)
2196
+ self.assertNotIsInstance(self.random_object, float)
2197
+
2198
+ with self.assertRaises(TypeError) as te:
2199
+ _ = self.random_object % self.nepalinumber_integer_10
2200
+
2201
+ self.assertEqual(
2202
+ str(te.exception),
2203
+ "unsupported operand type(s) for %: 'type' and 'nepalinumber'",
2204
+ )
2205
+
2206
+ # divmod
2207
+ # divmod positive nepalinumber integer as dividend tests
2208
+ def test_positive_nepalinumber_integer_can_be_divmod_with_positive_integer(self):
2209
+ self.assertEqual(
2210
+ divmod(self.nepalinumber_integer_10, 2),
2211
+ (self.nepalinumber_integer_5, self.nepalinumber_zero),
2212
+ )
2213
+
2214
+ def test_positive_nepalinumber_integer_can_be_divmod_with_positive_float(self):
2215
+ self.assertEqual(
2216
+ divmod(self.nepalinumber_integer_10, 2.5),
2217
+ (self.nepalinumber_integer_4, self.nepalinumber_zero),
2218
+ )
2219
+
2220
+ def test_positive_nepalinumber_integer_can_be_divmod_with_negative_integer(self):
2221
+ self.assertEqual(
2222
+ divmod(self.nepalinumber_integer_10, -4),
2223
+ (
2224
+ self.nepalinumber_negative_integer_3,
2225
+ self.nepalinumber_negative_integer_2,
2226
+ ),
2227
+ )
2228
+
2229
+ def test_positive_nepalinumber_integer_can_be_divmod_with_negative_float(self):
2230
+ self.assertEqual(
2231
+ divmod(self.nepalinumber_integer_10, -5.5),
2232
+ (
2233
+ self.nepalinumber_negative_integer_2,
2234
+ self.nepalinumber_negative_integer_1,
2235
+ ),
2236
+ )
2237
+
2238
+ def test_positive_nepalinumber_integer_can_be_divmod_with_positive_nepalinumber_integer(
2239
+ self,
2240
+ ):
2241
+ self.assertEqual(
2242
+ divmod(self.nepalinumber_integer_10, self.nepalinumber_integer_2),
2243
+ (self.nepalinumber_integer_5, self.nepalinumber_zero),
2244
+ )
2245
+
2246
+ def test_positive_nepalinumber_integer_can_be_divmod_with_positive_nepalinumber_float(
2247
+ self,
2248
+ ):
2249
+ self.assertEqual(
2250
+ divmod(self.nepalinumber_integer_10, self.nepalinumber_float_2_5),
2251
+ (self.nepalinumber_integer_4, self.nepalinumber_zero),
2252
+ )
2253
+
2254
+ def test_positive_nepalinumber_integer_can_be_divmod_with_negative_nepalinumber_integer(
2255
+ self,
2256
+ ):
2257
+ self.assertEqual(
2258
+ divmod(self.nepalinumber_integer_10, self.nepalinumber_negative_integer_4),
2259
+ (
2260
+ self.nepalinumber_negative_integer_3,
2261
+ self.nepalinumber_negative_integer_2,
2262
+ ),
2263
+ )
2264
+
2265
+ def test_positive_nepalinumber_integer_can_be_divmod_with_negative_nepalinumber_float(
2266
+ self,
2267
+ ):
2268
+ self.assertEqual(
2269
+ divmod(self.nepalinumber_integer_10, self.nepalinumber_negative_float_5_5),
2270
+ (
2271
+ self.nepalinumber_negative_integer_2,
2272
+ self.nepalinumber_negative_integer_1,
2273
+ ),
2274
+ )
2275
+
2276
+ # divmod positive nepalinumber integer as divisor tests
2277
+ def test_positive_integer_can_be_divmod_with_positive_nepalinumber_integer(self):
2278
+ self.assertEqual(
2279
+ divmod(10, self.nepalinumber_integer_2),
2280
+ (self.nepalinumber_integer_5, self.nepalinumber_zero),
2281
+ )
2282
+
2283
+ def test_positive_float_can_be_divmod_with_positive_nepalinumber_integer(self):
2284
+ self.assertEqual(
2285
+ divmod(15.5, self.nepalinumber_integer_10),
2286
+ (self.nepalinumber_integer_1, self.nepalinumber_float_5_5),
2287
+ )
2288
+
2289
+ def test_negative_integer_can_be_divmod_with_positive_nepalinumber_integer(self):
2290
+ self.assertEqual(
2291
+ divmod(-10, self.nepalinumber_integer_10),
2292
+ (self.nepalinumber_negative_integer_1, self.nepalinumber_zero),
2293
+ )
2294
+
2295
+ def test_negative_float_can_be_divmod_with_positive_nepalinumber_integer(self):
2296
+ self.assertEqual(
2297
+ divmod(-15.5, self.nepalinumber_integer_5),
2298
+ (self.nepalinumber_negative_integer_4, self.nepalinumber_float_4_5),
2299
+ )
2300
+
2301
+ def test_positive_nepalinumber_float_can_be_divmod_with_positive_nepalinumber_integer(
2302
+ self,
2303
+ ):
2304
+ self.assertEqual(
2305
+ divmod(self.nepalinumber_float_15_5, self.nepalinumber_integer_10),
2306
+ (self.nepalinumber_integer_1, self.nepalinumber_float_5_5),
2307
+ )
2308
+
2309
+ def test_negative_nepalinumber_integer_can_be_divmod_with_positive_nepalinumber_integer(
2310
+ self,
2311
+ ):
2312
+ self.assertEqual(
2313
+ divmod(self.nepalinumber_negative_integer_10, self.nepalinumber_integer_10),
2314
+ (self.nepalinumber_negative_integer_1, self.nepalinumber_zero),
2315
+ )
2316
+
2317
+ def test_negative_nepalinumber_float_can_be_divmod_with_positive_nepalinumber_integer(
2318
+ self,
2319
+ ):
2320
+ self.assertEqual(
2321
+ divmod(self.nepalinumber_negative_float_15_5, self.nepalinumber_integer_5),
2322
+ (self.nepalinumber_negative_integer_4, self.nepalinumber_float_4_5),
2323
+ )
2324
+
2325
+ # divmod positive nepalinumber float as dividend tests
2326
+ def test_positive_nepalinumber_float_can_be_divmod_with_positive_integer(self):
2327
+ self.assertEqual(
2328
+ divmod(self.nepalinumber_float_4_5, 2),
2329
+ (self.nepalinumber_integer_2, self.nepalinumber_float_0_5),
2330
+ )
2331
+
2332
+ def test_positive_nepalinumber_float_can_be_divmod_with_positive_float(self):
2333
+ self.assertEqual(
2334
+ divmod(self.nepalinumber_float_4_5, 2.5),
2335
+ (self.nepalinumber_integer_1, self.nepalinumber_integer_2),
2336
+ )
2337
+
2338
+ def test_positive_nepalinumber_float_can_be_divmod_with_negative_integer(self):
2339
+ self.assertEqual(
2340
+ divmod(self.nepalinumber_float_4_5, -3),
2341
+ (
2342
+ self.nepalinumber_negative_integer_2,
2343
+ self.nepalinumber_negative_float_1_5,
2344
+ ),
2345
+ )
2346
+
2347
+ def test_positive_nepalinumber_float_can_be_divmod_with_negative_float(self):
2348
+ self.assertEqual(
2349
+ divmod(self.nepalinumber_float_4_5, -2.25),
2350
+ (self.nepalinumber_negative_integer_2, self.nepalinumber_zero),
2351
+ )
2352
+
2353
+ def test_positive_nepalinumber_float_can_be_divmod_with_positive_nepalinumber_float(
2354
+ self,
2355
+ ):
2356
+ self.assertEqual(
2357
+ divmod(self.nepalinumber_float_4_5, self.nepalinumber_float_4_5),
2358
+ (self.nepalinumber_integer_1, self.nepalinumber_zero),
2359
+ )
2360
+
2361
+ def test_positive_nepalinumber_float_can_be_divmod_with_negative_nepalinumber_integer(
2362
+ self,
2363
+ ):
2364
+ self.assertEqual(
2365
+ divmod(self.nepalinumber_float_4_5, -2),
2366
+ (
2367
+ self.nepalinumber_negative_integer_3,
2368
+ self.nepalinumber_negative_float_1_5,
2369
+ ),
2370
+ )
2371
+
2372
+ def test_positive_nepalinumber_float_can_be_divmod_with_negative_nepalinumber_float(
2373
+ self,
2374
+ ):
2375
+ self.assertEqual(
2376
+ divmod(self.nepalinumber_float_4_5, -2.5),
2377
+ (
2378
+ self.nepalinumber_negative_integer_2,
2379
+ self.nepalinumber_negative_float_0_5,
2380
+ ),
2381
+ )
2382
+
2383
+ # divmod positive nepalinumber float as divisor tests
2384
+ def test_positive_integer_can_be_divmod_with_positive_nepalinumber_float(self):
2385
+ self.assertEqual(
2386
+ divmod(10, self.nepalinumber_float_2_5),
2387
+ (self.nepalinumber_integer_4, self.nepalinumber_zero),
2388
+ )
2389
+
2390
+ def test_positive_float_can_be_divmod_with_positive_nepalinumber_float(self):
2391
+ self.assertEqual(
2392
+ divmod(4.5, self.nepalinumber_float_2_25),
2393
+ (self.nepalinumber_integer_2, self.nepalinumber_zero),
2394
+ )
2395
+
2396
+ def test_negative_integer_can_be_divmod_with_positive_nepalinumber_float(self):
2397
+ self.assertEqual(
2398
+ divmod(-10, self.nepalinumber_float_2_25),
2399
+ (self.nepalinumber_negative_integer_5, self.nepalinumber_float_1_25),
2400
+ )
2401
+
2402
+ def test_negative_float_can_be_divmod_with_positive_nepalinumber_float(self):
2403
+ self.assertEqual(
2404
+ divmod(-15.5, self.nepalinumber_float_1_5),
2405
+ (self.nepalinumber_negative_integer_11, self.nepalinumber_integer_1),
2406
+ )
2407
+
2408
+ def test_negative_nepalinumber_integer_can_be_divmod_with_positive_nepalinumber_float(
2409
+ self,
2410
+ ):
2411
+ self.assertEqual(
2412
+ divmod(self.nepalinumber_negative_integer_10, self.nepalinumber_float_2_5),
2413
+ (self.nepalinumber_negative_integer_4, self.nepalinumber_zero),
2414
+ )
2415
+
2416
+ def test_negative_nepalinumber_float_can_be_divmod_with_positive_nepalinumber_float(
2417
+ self,
2418
+ ):
2419
+ self.assertEqual(
2420
+ divmod(self.nepalinumber_negative_float_20_2, self.nepalinumber_float_10_1),
2421
+ (self.nepalinumber_negative_integer_2, self.nepalinumber_zero),
2422
+ )
2423
+
2424
+ # divmod negative nepalinumber integer as dividend tests
2425
+ def test_negative_nepalinumber_integer_can_be_divmod_with_positive_integer(self):
2426
+ self.assertEqual(
2427
+ divmod(self.nepalinumber_negative_integer_10, 2),
2428
+ (self.nepalinumber_negative_integer_5, self.nepalinumber_zero),
2429
+ )
2430
+
2431
+ def test_negative_nepalinumber_integer_can_be_divmod_with_positive_float(self):
2432
+ self.assertEqual(
2433
+ divmod(self.nepalinumber_negative_integer_10, 2.5),
2434
+ (self.nepalinumber_negative_integer_4, self.nepalinumber_zero),
2435
+ )
2436
+
2437
+ def test_negative_nepalinumber_integer_can_be_divmod_with_negative_integer(self):
2438
+ self.assertEqual(
2439
+ divmod(self.nepalinumber_negative_integer_10, -4),
2440
+ (self.nepalinumber_integer_2, self.nepalinumber_negative_integer_2),
2441
+ )
2442
+
2443
+ def test_negative_nepalinumber_integer_can_be_divmod_with_negative_float(self):
2444
+ self.assertEqual(
2445
+ divmod(self.nepalinumber_negative_integer_10, -5.5),
2446
+ (self.nepalinumber_integer_1, self.nepalinumber_negative_float_4_5),
2447
+ )
2448
+
2449
+ def test_negative_nepalinumber_integer_can_be_divmod_with_negative_nepalinumber_integer(
2450
+ self,
2451
+ ):
2452
+ self.assertEqual(
2453
+ divmod(
2454
+ self.nepalinumber_negative_integer_10,
2455
+ self.nepalinumber_negative_integer_4,
2456
+ ),
2457
+ (self.nepalinumber_integer_2, self.nepalinumber_negative_integer_2),
2458
+ )
2459
+
2460
+ def test_negative_nepalinumber_integer_can_be_divmod_with_negative_nepalinumber_float(
2461
+ self,
2462
+ ):
2463
+ self.assertEqual(
2464
+ divmod(
2465
+ self.nepalinumber_negative_integer_10,
2466
+ self.nepalinumber_negative_float_5_5,
2467
+ ),
2468
+ (self.nepalinumber_integer_1, self.nepalinumber_negative_float_4_5),
2469
+ )
2470
+
2471
+ # divmod negative nepalinumber integer as divisor tests
2472
+ def test_positive_integer_can_be_divmod_with_negative_nepalinumber_integer(self):
2473
+ self.assertEqual(
2474
+ divmod(10, self.nepalinumber_negative_integer_2),
2475
+ (self.nepalinumber_negative_integer_5, self.nepalinumber_zero),
2476
+ )
2477
+
2478
+ def test_positive_float_can_be_divmod_with_negative_nepalinumber_integer(self):
2479
+ self.assertEqual(
2480
+ divmod(15.5, self.nepalinumber_negative_integer_10),
2481
+ (
2482
+ self.nepalinumber_negative_integer_2,
2483
+ self.nepalinumber_negative_float_4_5,
2484
+ ),
2485
+ )
2486
+
2487
+ def test_negative_integer_can_be_divmod_with_negative_nepalinumber_integer(self):
2488
+ self.assertEqual(
2489
+ divmod(-10, self.nepalinumber_negative_integer_10),
2490
+ (self.nepalinumber_integer_1, self.nepalinumber_zero),
2491
+ )
2492
+
2493
+ def test_negative_float_can_be_divmod_with_negative_nepalinumber_integer(self):
2494
+ self.assertEqual(
2495
+ divmod(-4.5, self.nepalinumber_negative_integer_5),
2496
+ (self.nepalinumber_zero, self.nepalinumber_negative_float_4_5),
2497
+ )
2498
+
2499
+ def test_negative_nepalinumber_float_can_be_divmod_with_negative_nepalinumber_integer(
2500
+ self,
2501
+ ):
2502
+ self.assertEqual(
2503
+ divmod(
2504
+ self.nepalinumber_negative_float_4_5,
2505
+ self.nepalinumber_negative_integer_2,
2506
+ ),
2507
+ (self.nepalinumber_integer_2, self.nepalinumber_negative_float_0_5),
2508
+ )
2509
+
2510
+ # divmod negative nepalinumber float as dividend tests
2511
+ def test_negative_nepalinumber_float_can_be_divmod_with_positive_integer(self):
2512
+ self.assertEqual(
2513
+ divmod(self.nepalinumber_negative_float_4_5, 2),
2514
+ (self.nepalinumber_negative_integer_3, self.nepalinumber_float_1_5),
2515
+ )
2516
+
2517
+ def test_negative_nepalinumber_float_can_be_divmod_with_positive_float(self):
2518
+ self.assertEqual(
2519
+ divmod(self.nepalinumber_negative_float_4_5, 2.5),
2520
+ (self.nepalinumber_negative_integer_2, self.nepalinumber_float_0_5),
2521
+ )
2522
+
2523
+ def test_negative_nepalinumber_float_can_be_divmod_with_negative_integer(self):
2524
+ self.assertEqual(
2525
+ divmod(self.nepalinumber_negative_float_4_5, -3),
2526
+ (self.nepalinumber_integer_1, self.nepalinumber_negative_float_1_5),
2527
+ )
2528
+
2529
+ def test_negative_nepalinumber_float_can_be_divmod_with_negative_float(self):
2530
+ self.assertEqual(
2531
+ divmod(self.nepalinumber_negative_float_4_5, -2.25),
2532
+ (self.nepalinumber_integer_2, self.nepalinumber_zero),
2533
+ )
2534
+
2535
+ def test_negative_nepalinumber_float_can_be_divmod_with_negative_nepalinumber_float(
2536
+ self,
2537
+ ):
2538
+ self.assertEqual(
2539
+ divmod(self.nepalinumber_negative_float_4_5, -2.5),
2540
+ (self.nepalinumber_integer_1, self.nepalinumber_negative_integer_2),
2541
+ )
2542
+
2543
+ # divmod negative nepalinumber float as divisor tests
2544
+ def test_positive_integer_can_be_divmod_with_negative_nepalinumber_float(self):
2545
+ self.assertEqual(
2546
+ divmod(10, self.nepalinumber_negative_float_2_5),
2547
+ (self.nepalinumber_negative_integer_4, self.nepalinumber_zero),
2548
+ )
2549
+
2550
+ def test_positive_float_can_be_divmod_with_negative_nepalinumber_float(self):
2551
+ self.assertEqual(
2552
+ divmod(4.5, self.nepalinumber_negative_float_2_25),
2553
+ (self.nepalinumber_negative_integer_2, self.nepalinumber_zero),
2554
+ )
2555
+
2556
+ def test_negative_integer_can_be_divmod_with_negative_nepalinumber_float(self):
2557
+ self.assertEqual(
2558
+ divmod(-10, self.nepalinumber_negative_float_2_25),
2559
+ (self.nepalinumber_integer_4, self.nepalinumber_negative_integer_1),
2560
+ )
2561
+
2562
+ def test_negative_float_can_be_divmod_with_negative_nepalinumber_float(self):
2563
+ self.assertEqual(
2564
+ divmod(-15.5, self.nepalinumber_negative_float_1_5),
2565
+ (self.nepalinumber_integer_10, self.nepalinumber_negative_float_0_5),
2566
+ )
2567
+
2568
+ # pow
2569
+ # pow positive nepalinumber integer as base
2570
+ def test_positive_nepalinumber_integer_can_be_powered_to_positive_integer(self):
2571
+ self.assertEqual(self.nepalinumber_integer_2**2, self.nepalinumber_integer_4)
2572
+
2573
+ def test_positive_nepalinumber_integer_can_be_powered_to_positive_float(self):
2574
+ self.assertEqual(
2575
+ self.nepalinumber_integer_2**2.5, number.nepalinumber(2**2.5)
2576
+ )
2577
+
2578
+ def test_positive_nepalinumber_integer_can_be_powered_to_negative_integer(self):
2579
+ self.assertEqual(self.nepalinumber_integer_2**-1, self.nepalinumber_float_0_5)
2580
+
2581
+ def test_positive_nepalinumber_integer_can_be_powered_to_negative_float(self):
2582
+ self.assertEqual(
2583
+ self.nepalinumber_integer_2**-1.5, number.nepalinumber(2**-1.5)
2584
+ )
2585
+
2586
+ def test_positive_nepalinumber_integer_can_be_powered_to_positive_nepalinumber_integer(
2587
+ self,
2588
+ ):
2589
+ self.assertEqual(
2590
+ self.nepalinumber_integer_2**self.nepalinumber_integer_2,
2591
+ self.nepalinumber_integer_4,
2592
+ )
2593
+
2594
+ def test_positive_nepalinumber_integer_can_be_powered_to_positive_nepalinumber_float(
2595
+ self,
2596
+ ):
2597
+ self.assertEqual(
2598
+ self.nepalinumber_integer_2**self.nepalinumber_float_2_5,
2599
+ number.nepalinumber(2**2.5),
2600
+ )
2601
+
2602
+ def test_positive_nepalinumber_integer_can_be_powered_to_negative_nepalinumber_integer(
2603
+ self,
2604
+ ):
2605
+ self.assertEqual(
2606
+ self.nepalinumber_integer_2**self.nepalinumber_negative_integer_1,
2607
+ self.nepalinumber_float_0_5,
2608
+ )
2609
+
2610
+ def test_positive_nepalinumber_integer_can_be_powered_to_negative_nepalinumber_float(
2611
+ self,
2612
+ ):
2613
+ self.assertEqual(
2614
+ self.nepalinumber_integer_2**self.nepalinumber_negative_float_1_5,
2615
+ number.nepalinumber(2**-1.5),
2616
+ )
2617
+
2618
+ # pow positive nepalinumber integer as exponent
2619
+ def test_positive_integer_can_be_powered_to_positive_nepalinumber_integer(self):
2620
+ self.assertEqual(2**self.nepalinumber_integer_2, self.nepalinumber_integer_4)
2621
+
2622
+ def test_positive_float_can_be_powered_to_positive_nepalinumber_integer(self):
2623
+ self.assertEqual(
2624
+ 2.5**self.nepalinumber_integer_2, number.nepalinumber(2.5**2)
2625
+ )
2626
+
2627
+ def test_negative_integer_can_be_powered_to_positive_nepalinumber_integer(self):
2628
+ self.assertEqual(
2629
+ (-1) ** self.nepalinumber_integer_2, self.nepalinumber_integer_1
2630
+ )
2631
+
2632
+ def test_negative_float_can_be_powered_to_positive_nepalinumber_integer(self):
2633
+ self.assertEqual(
2634
+ (-1.5) ** self.nepalinumber_integer_2, number.nepalinumber((-1.5) ** 2)
2635
+ )
2636
+
2637
+ def test_positive_nepalinumber_float_can_be_powered_to_positive_nepalinumber_integer(
2638
+ self,
2639
+ ):
2640
+ self.assertEqual(
2641
+ self.nepalinumber_float_2_5**self.nepalinumber_integer_2,
2642
+ number.nepalinumber(2.5**2),
2643
+ )
2644
+
2645
+ def test_negative_nepalinumber_integer_can_be_powered_to_positive_nepalinumber_integer(
2646
+ self,
2647
+ ):
2648
+ self.assertEqual(
2649
+ self.nepalinumber_negative_integer_1**self.nepalinumber_integer_2,
2650
+ self.nepalinumber_integer_1,
2651
+ )
2652
+
2653
+ def test_negative_nepalinumber_float_can_be_powered_to_positive_nepalinumber_integer(
2654
+ self,
2655
+ ):
2656
+ self.assertEqual(
2657
+ self.nepalinumber_negative_float_1_5**self.nepalinumber_integer_2,
2658
+ number.nepalinumber((-1.5) ** 2),
2659
+ )
2660
+
2661
+ # pow positive nepalinumber float as base
2662
+ def test_positive_nepalinumber_float_can_be_powered_to_positive_integer(self):
2663
+ self.assertEqual(self.nepalinumber_float_1_5**2, self.nepalinumber_float_2_25)
2664
+
2665
+ def test_positive_nepalinumber_float_can_be_powered_to_positive_float(self):
2666
+ self.assertEqual(
2667
+ self.nepalinumber_float_1_5**1.5, number.nepalinumber(1.5**1.5)
2668
+ )
2669
+
2670
+ def test_positive_nepalinumber_float_can_be_powered_to_negative_integer(self):
2671
+ self.assertEqual(
2672
+ self.nepalinumber_float_1_5**-2, number.nepalinumber(1.5**-2)
2673
+ )
2674
+
2675
+ def test_positive_nepalinumber_float_can_be_powered_to_negative_float(self):
2676
+ self.assertEqual(
2677
+ self.nepalinumber_float_1_5**-1.5, number.nepalinumber(1.5**-1.5)
2678
+ )
2679
+
2680
+ def test_positive_nepalinumber_float_can_be_powered_to_positive_nepalinumber_float(
2681
+ self,
2682
+ ):
2683
+ self.assertEqual(
2684
+ self.nepalinumber_float_1_5**self.nepalinumber_float_1_5,
2685
+ number.nepalinumber(1.5**1.5),
2686
+ )
2687
+
2688
+ def test_positive_nepalinumber_float_can_be_powered_to_negative_nepalinumber_integer(
2689
+ self,
2690
+ ):
2691
+ self.assertEqual(
2692
+ self.nepalinumber_float_1_5**self.nepalinumber_negative_integer_2,
2693
+ number.nepalinumber(1.5**-2),
2694
+ )
2695
+
2696
+ def test_positive_nepalinumber_float_can_be_powered_to_negative_nepalinumber_float(
2697
+ self,
2698
+ ):
2699
+ self.assertEqual(
2700
+ self.nepalinumber_float_1_5**self.nepalinumber_negative_float_1_5,
2701
+ number.nepalinumber(1.5**-1.5),
2702
+ )
2703
+
2704
+ # pow positive nepalinumber float as exponent
2705
+ def test_positive_integer_can_be_powered_to_positive_nepalinumber_float(self):
2706
+ self.assertEqual(
2707
+ 2**self.nepalinumber_float_1_5, number.nepalinumber(2**1.5)
2708
+ )
2709
+
2710
+ def test_positive_float_can_be_powered_to_positive_nepalinumber_float(self):
2711
+ self.assertEqual(
2712
+ 1.5**self.nepalinumber_float_1_5, number.nepalinumber(1.5**1.5)
2713
+ )
2714
+
2715
+ def test_negative_integer_can_be_powered_to_positive_nepalinumber_float(self):
2716
+ self.assertEqual((-2) ** self.nepalinumber_float_1_5, (-2) ** 1.5)
2717
+
2718
+ def test_negative_float_can_be_powered_to_positive_nepalinumber_float(self):
2719
+ self.assertEqual((-1.5) ** self.nepalinumber_float_1_5, (-1.5) ** 1.5)
2720
+
2721
+ def test_negative_nepalinumber_integer_can_be_powered_to_positive_nepalinumber_float(
2722
+ self,
2723
+ ):
2724
+ self.assertEqual(
2725
+ self.nepalinumber_negative_integer_2**self.nepalinumber_float_1_5,
2726
+ (-2) ** 1.5,
2727
+ )
2728
+
2729
+ def test_negative_nepalinumber_float_can_be_powered_to_positive_nepalinumber_float(
2730
+ self,
2731
+ ):
2732
+ self.assertEqual(
2733
+ self.nepalinumber_negative_float_1_5**self.nepalinumber_float_1_5,
2734
+ (-1.5) ** 1.5,
2735
+ )
2736
+
2737
+ # pow negative nepalinumber integer as base
2738
+ def test_negative_nepalinumber_integer_can_be_powered_to_positive_integer(self):
2739
+ self.assertEqual(
2740
+ self.nepalinumber_negative_integer_2**2, self.nepalinumber_integer_4
2741
+ )
2742
+
2743
+ def test_negative_nepalinumber_integer_can_be_powered_to_positive_float(self):
2744
+ self.assertEqual(
2745
+ self.nepalinumber_negative_integer_2**2.5,
2746
+ (-2) ** 2.5,
2747
+ )
2748
+
2749
+ def test_negative_nepalinumber_integer_can_be_powered_to_negative_integer(self):
2750
+ self.assertEqual(
2751
+ self.nepalinumber_negative_integer_2**-1,
2752
+ self.nepalinumber_negative_float_0_5,
2753
+ )
2754
+
2755
+ def test_negative_nepalinumber_integer_can_be_powered_to_negative_float(self):
2756
+ self.assertEqual(
2757
+ self.nepalinumber_negative_integer_2**-1.5,
2758
+ (-2) ** -1.5,
2759
+ )
2760
+
2761
+ def test_negative_nepalinumber_integer_can_be_powered_to_negative_nepalinumber_integer(
2762
+ self,
2763
+ ):
2764
+ self.assertEqual(
2765
+ self.nepalinumber_negative_integer_2
2766
+ ** self.nepalinumber_negative_integer_1,
2767
+ self.nepalinumber_negative_float_0_5,
2768
+ )
2769
+
2770
+ def test_negative_nepalinumber_integer_can_be_powered_to_negative_nepalinumber_float(
2771
+ self,
2772
+ ):
2773
+ self.assertEqual(
2774
+ self.nepalinumber_negative_integer_2
2775
+ ** self.nepalinumber_negative_float_1_5,
2776
+ (-2) ** -1.5,
2777
+ )
2778
+
2779
+ # pow negative nepalinumber integer as exponent
2780
+ def test_positive_integer_can_be_powered_to_negative_nepalinumber_integer(self):
2781
+ self.assertEqual(
2782
+ 2**self.nepalinumber_negative_integer_2, number.nepalinumber(2**-2)
2783
+ )
2784
+
2785
+ def test_positive_float_can_be_powered_to_negative_nepalinumber_integer(self):
2786
+ self.assertEqual(
2787
+ 2.5**self.nepalinumber_negative_integer_2, number.nepalinumber(2.5**-2)
2788
+ )
2789
+
2790
+ def test_negative_integer_can_be_powered_to_negative_nepalinumber_integer(self):
2791
+ self.assertEqual(
2792
+ (-1) ** self.nepalinumber_negative_integer_2, self.nepalinumber_integer_1
2793
+ )
2794
+
2795
+ def test_negative_float_can_be_powered_to_negative_nepalinumber_integer(self):
2796
+ self.assertEqual(
2797
+ (-1.5) ** self.nepalinumber_negative_integer_2,
2798
+ number.nepalinumber((-1.5) ** (-2)),
2799
+ )
2800
+
2801
+ def test_negative_nepalinumber_float_can_be_powered_to_negative_nepalinumber_integer(
2802
+ self,
2803
+ ):
2804
+ self.assertEqual(
2805
+ self.nepalinumber_negative_float_1_5
2806
+ ** self.nepalinumber_negative_integer_2,
2807
+ number.nepalinumber((-1.5) ** (-2)),
2808
+ )
2809
+
2810
+ # pow negative nepalinumber float as base
2811
+ def test_negative_nepalinumber_float_can_be_powered_to_positive_integer(self):
2812
+ self.assertEqual(
2813
+ self.nepalinumber_negative_float_1_5**2, self.nepalinumber_float_2_25
2814
+ )
2815
+
2816
+ def test_negative_nepalinumber_float_can_be_powered_to_positive_float(self):
2817
+ self.assertEqual(
2818
+ self.nepalinumber_negative_float_1_5**1.5,
2819
+ (-1.5) ** 1.5,
2820
+ )
2821
+
2822
+ def test_negative_nepalinumber_float_can_be_powered_to_negative_integer(self):
2823
+ self.assertEqual(
2824
+ self.nepalinumber_negative_float_1_5**-2,
2825
+ number.nepalinumber((-1.5) ** -2),
2826
+ )
2827
+
2828
+ def test_negative_nepalinumber_float_can_be_powered_to_negative_float(self):
2829
+ self.assertEqual(
2830
+ self.nepalinumber_negative_float_1_5**-1.5,
2831
+ (-1.5) ** -1.5,
2832
+ )
2833
+
2834
+ def test_negative_nepalinumber_float_can_be_powered_to_negative_nepalinumber_float(
2835
+ self,
2836
+ ):
2837
+ self.assertEqual(
2838
+ self.nepalinumber_negative_float_1_5
2839
+ ** self.nepalinumber_negative_float_1_5,
2840
+ (-1.5) ** -1.5,
2841
+ )
2842
+
2843
+ # pow negative nepalinumber float as exponent
2844
+ def test_positive_integer_can_be_powered_to_negative_nepalinumber_float(self):
2845
+ self.assertEqual(
2846
+ 2**self.nepalinumber_negative_float_1_5, number.nepalinumber(2**-1.5)
2847
+ )
2848
+
2849
+ def test_positive_float_can_be_powered_to_negative_nepalinumber_float(self):
2850
+ self.assertEqual(
2851
+ 1.5**self.nepalinumber_negative_float_1_5,
2852
+ number.nepalinumber(1.5**-1.5),
2853
+ )
2854
+
2855
+ def test_negative_integer_can_be_powered_to_negative_nepalinumber_float(self):
2856
+ self.assertEqual(
2857
+ (-2) ** self.nepalinumber_negative_float_1_5,
2858
+ (-2) ** -1.5,
2859
+ )
2860
+
2861
+ def test_negative_float_can_be_powered_to_negative_nepalinumber_float(self):
2862
+ self.assertEqual(
2863
+ (-1.5) ** self.nepalinumber_negative_float_1_5,
2864
+ (-1.5) ** -1.5,
2865
+ )
2866
+
2867
+
2868
+ class TestNepaliNumberParse(unittest.TestCase):
2869
+ def test_nepalinumber_parse_int(self):
2870
+ num = nepalinumber(13)
2871
+ self.assertEqual(num.value, 13)
2872
+ self.assertEqual(type(num.value), int)
2873
+
2874
+ def test_nepalinumber_parse_int_negative(self):
2875
+ num = nepalinumber(-13)
2876
+ self.assertEqual(num.value, -13)
2877
+ self.assertEqual(type(num.value), int)
2878
+
2879
+ def test_nepalinumber_parse_float(self):
2880
+ num = nepalinumber(13.07)
2881
+ self.assertEqual(num.value, 13.07)
2882
+ self.assertEqual(type(num.value), float)
2883
+
2884
+ def test_nepalinumber_parse_float_negative(self):
2885
+ num = nepalinumber(-13.07)
2886
+ self.assertEqual(num.value, -13.07)
2887
+ self.assertEqual(type(num.value), float)
2888
+
2889
+ def test_nepalinumber_parse_str_int(self):
2890
+ num = nepalinumber("13")
2891
+ self.assertEqual(num.value, 13)
2892
+ self.assertEqual(type(num.value), int)
2893
+
2894
+ def test_nepalinumber_parse_str_int_negative(self):
2895
+ num = nepalinumber("-13")
2896
+ self.assertEqual(num.value, -13)
2897
+ self.assertEqual(type(num.value), int)
2898
+
2899
+ def test_nepalinumber_parse_str_float(self):
2900
+ num = nepalinumber("13.07")
2901
+ self.assertEqual(num.value, 13.07)
2902
+ self.assertEqual(type(num.value), float)
2903
+
2904
+ def test_nepalinumber_parse_str_float_negative(self):
2905
+ num = nepalinumber("-13.07")
2906
+ self.assertEqual(num.value, -13.07)
2907
+ self.assertEqual(type(num.value), float)
2908
+
2909
+ def test_nepalinumber_parse_str_float_starting_dot(self):
2910
+ num = nepalinumber(".07")
2911
+ self.assertEqual(num.value, 0.07)
2912
+ self.assertEqual(type(num.value), float)
2913
+
2914
+ def test_nepalinumber_parse_str_float_starting_dot_and_negative(self):
2915
+ num = nepalinumber("-.07")
2916
+ self.assertEqual(num.value, -0.07)
2917
+ self.assertEqual(type(num.value), float)
2918
+
2919
+ def test_nepalinumber_parse_str_nepali_int(self):
2920
+ num = nepalinumber("१३")
2921
+ self.assertEqual(num.value, 13)
2922
+ self.assertEqual(type(num.value), int)
2923
+
2924
+ def test_nepalinumber_parse_str_nepali_int_negative(self):
2925
+ num = nepalinumber("-१३")
2926
+ self.assertEqual(num.value, -13)
2927
+ self.assertEqual(type(num.value), int)
2928
+
2929
+ def test_nepalinumber_parse_str_nepali_float(self):
2930
+ num = nepalinumber("१३.०७")
2931
+ self.assertEqual(num.value, 13.07)
2932
+ self.assertEqual(type(num.value), float)
2933
+
2934
+ def test_nepalinumber_parse_str_nepali_float_negative(self):
2935
+ num = nepalinumber("-१३.०७")
2936
+ self.assertEqual(num.value, -13.07)
2937
+ self.assertEqual(type(num.value), float)
2938
+
2939
+ def test_nepalinumber_raises_exception_for_chars_english(self):
2940
+ with self.assertRaises(ValueError) as ex:
2941
+ nepalinumber("invalid")
2942
+ self.assertEqual(
2943
+ str(ex.exception), "could not convert str to nepalinumber: 'invalid'"
2944
+ )
2945
+
2946
+ def test_nepalinumber_raises_exception_for_chars_nepali(self):
2947
+ with self.assertRaises(ValueError):
2948
+ nepalinumber("आइतबार")
2949
+
2950
+ def test_nepalinumber_raises_exception_for_two_dots(self):
2951
+ with self.assertRaises(ValueError):
2952
+ nepalinumber("10..5")
2953
+
2954
+ def test_nepalinumber_raises_exception_for_nepali_aplha(self):
2955
+ with self.assertRaises(ValueError):
2956
+ nepalinumber("10..5")
2957
+
2958
+ def test_nepalinumber_raises_exception_for_special_chars(self):
2959
+ with self.assertRaises(ValueError):
2960
+ nepalinumber("!@#$%^&*()-+")
2961
+
2962
+ def test_nepalinumber_raise_exception_for_number_with_spaces(self):
2963
+ with self.assertRaises(ValueError):
2964
+ nepalinumber("10 20")
2965
+
2966
+ def test_nepalinumber_raises_exception_on_complex_number(self):
2967
+ with self.assertRaises(TypeError) as ex:
2968
+ nepalinumber(3 + 2j)
2969
+ self.assertEqual(
2970
+ str(ex.exception), "could not convert complex to nepalinumber: '(3+2j)'"
2971
+ )
2972
+
2973
+ # Object parsing
2974
+ def test_nepalinumber_parse_object_with_int(self):
2975
+ class _test:
2976
+ def __int__(self):
2977
+ return 13
2978
+
2979
+ num = nepalinumber(_test())
2980
+ self.assertEqual(num.value, int(_test()))
2981
+ self.assertEqual(type(num.value), int)
2982
+
2983
+ def test_nepalinumber_parse_object_with_float(self):
2984
+ class _test:
2985
+ def __float__(self):
2986
+ return 13.07
2987
+
2988
+ num = nepalinumber(_test())
2989
+ self.assertEqual(num.value, float(_test()))
2990
+ self.assertEqual(type(num.value), float)
2991
+
2992
+ def test_nepalinumber_parse_object_with_float_and_int(self):
2993
+ class _test:
2994
+ def __int__(self):
2995
+ return 13
2996
+
2997
+ def __float__(self):
2998
+ return 13.07
2999
+
3000
+ num = nepalinumber(_test())
3001
+ self.assertNotEqual(num.value, int(_test()))
3002
+ self.assertEqual(num.value, float(_test()))
3003
+ self.assertEqual(type(num.value), float)
3004
+
3005
+ def test_nepalinumber_parse_object_with_valid_number_str_int(self):
3006
+ class _test:
3007
+ def __str__(self):
3008
+ return "13"
3009
+
3010
+ num = nepalinumber(_test())
3011
+ self.assertEqual(num.value, int(str(_test())))
3012
+ self.assertEqual(type(num.value), int)
3013
+
3014
+ def test_nepalinumber_parse_object_with_valid_number_str_float(self):
3015
+ class _test:
3016
+ def __str__(self):
3017
+ return "13.07"
3018
+
3019
+ num = nepalinumber(_test())
3020
+ self.assertEqual(num.value, float(str(_test())))
3021
+ self.assertEqual(type(num.value), float)
3022
+
3023
+ def test_nepalinumber_raises_exception_for_invalid_object(self):
3024
+ class _test:
3025
+ def __str__(self):
3026
+ return "13-03"
3027
+
3028
+ with self.assertRaises(TypeError) as ex:
3029
+ nepalinumber(_test())
3030
+ self.assertEqual(
3031
+ str(ex.exception), "could not convert _test to nepalinumber: '13-03'"
3032
+ )
3033
+
3034
+ # parsing inheritance with float and int
3035
+ def test_nepalinumber_parses_inherited_int(self):
3036
+ class _test(int):
3037
+ pass
3038
+
3039
+ num = nepalinumber(_test(13))
3040
+ self.assertEqual(num.value, 13)
3041
+ self.assertEqual(type(num.value), int)
3042
+
3043
+ def test_nepalinumber_parses_inherited_float(self):
3044
+ class _test(float):
3045
+ pass
3046
+
3047
+ num = nepalinumber(_test(13.07))
3048
+ self.assertEqual(num.value, 13.07)
3049
+ self.assertEqual(type(num.value), float)
3050
+
3051
+
3052
+ class TestNepaliNumberMethods(unittest.TestCase):
3053
+ @classmethod
3054
+ def setUpClass(cls):
3055
+ # positive integers
3056
+ cls.nepalinumber_integer_999999 = number.nepalinumber(999999)
3057
+ cls.nepalinumber_integer_1 = number.nepalinumber(1)
3058
+ cls.nepalinumber_integer_0 = number.nepalinumber(0)
3059
+ # positive floats
3060
+ cls.nepalinumber_float_999999_999999 = number.nepalinumber(999999.999999)
3061
+ cls.nepalinumber_float_1_25 = number.nepalinumber(1.25)
3062
+ cls.nepalinumber_float_0_05 = number.nepalinumber(0.05)
3063
+ cls.nepalinumber_float_0_0 = number.nepalinumber(0.0)
3064
+ # negative numbers
3065
+ cls.nepalinumber_negative_integer_999999 = number.nepalinumber(-999999)
3066
+ cls.nepalinumber_negative_integer_1 = number.nepalinumber(-1)
3067
+ # negative floats
3068
+ cls.nepalinumber_negative_float_999999_999999 = number.nepalinumber(
3069
+ -999999.999999
3070
+ )
3071
+ cls.nepalinumber_negative_float_1_25 = number.nepalinumber(-1.25)
3072
+ cls.nepalinumber_negative_float_0_05 = number.nepalinumber(-0.05)
3073
+
3074
+ # tests for str_ne methods
3075
+ def test_nepalinumber_str_ne_for_small_positive_integer(self):
3076
+ self.assertEqual(self.nepalinumber_integer_1.str_ne(), "१")
3077
+
3078
+ def test_nepalinumber_str_ne_for_large_positive_integer(self):
3079
+ self.assertEqual(self.nepalinumber_integer_999999.str_ne(), "९९९९९९")
3080
+
3081
+ def test_nepalinumber_str_ne_for_small_negative_integer(self):
3082
+ self.assertEqual(self.nepalinumber_negative_integer_1.str_ne(), "-१")
3083
+
3084
+ def test_nepalinumber_str_ne_for_large_negative_integer(self):
3085
+ self.assertEqual(self.nepalinumber_negative_integer_999999.str_ne(), "-९९९९९९")
3086
+
3087
+ def test_nepalinumber_str_ne_for_small_positive_float(self):
3088
+ self.assertEqual(self.nepalinumber_float_1_25.str_ne(), "१.२५")
3089
+ self.assertEqual(self.nepalinumber_float_0_05.str_ne(), "०.०५")
3090
+
3091
+ def test_nepalinumber_str_ne_for_large_positive_float(self):
3092
+ self.assertEqual(
3093
+ self.nepalinumber_float_999999_999999.str_ne(), "९९९९९९.९९९९९९"
3094
+ )
3095
+
3096
+ def test_nepalinumber_str_ne_for_small_negative_float(self):
3097
+ self.assertEqual(self.nepalinumber_negative_float_1_25.str_ne(), "-१.२५")
3098
+ self.assertEqual(self.nepalinumber_negative_float_0_05.str_ne(), "-०.०५")
3099
+
3100
+ def test_nepalinumber_str_ne_for_large_negative_float(self):
3101
+ self.assertEqual(
3102
+ self.nepalinumber_negative_float_999999_999999.str_ne(), "-९९९९९९.९९९९९९"
3103
+ )
3104
+
3105
+ def test_nepalinumber_str_ne_for_zero(self):
3106
+ self.assertEqual(self.nepalinumber_integer_0.str_ne(), "०")
3107
+ self.assertEqual(self.nepalinumber_float_0_0.str_ne(), "०.०")
3108
+
3109
+ # __str__ tests
3110
+ def test_nepalinumber_str_returns_string_representation(self):
3111
+ self.assertEqual(str(self.nepalinumber_integer_1), "1")
3112
+ self.assertEqual(str(self.nepalinumber_float_1_25), "1.25")
3113
+ self.assertEqual(str(self.nepalinumber_negative_integer_1), "-1")
3114
+
3115
+ # __repr__ tests
3116
+ def test_nepalinumber_repr_returns_string_representation(self):
3117
+ self.assertEqual(repr(self.nepalinumber_integer_1), "1")
3118
+ self.assertEqual(repr(self.nepalinumber_float_1_25), "1.25")
3119
+
3120
+ # __int__ tests
3121
+ def test_nepalinumber_int_returns_integer(self):
3122
+ self.assertEqual(int(self.nepalinumber_integer_1), 1)
3123
+ self.assertEqual(int(self.nepalinumber_float_1_25), 1)
3124
+ self.assertEqual(int(self.nepalinumber_negative_integer_1), -1)
3125
+
3126
+ # __ne__ tests
3127
+ def test_nepalinumber_ne_with_nepalinumber(self):
3128
+ self.assertTrue(self.nepalinumber_integer_1 != self.nepalinumber_integer_0)
3129
+ self.assertFalse(self.nepalinumber_integer_1 != nepalinumber(1))
3130
+
3131
+ def test_nepalinumber_ne_with_int(self):
3132
+ self.assertTrue(self.nepalinumber_integer_1 != 5)
3133
+ self.assertFalse(self.nepalinumber_integer_1 != 1)
3134
+
3135
+ def test_nepalinumber_ne_with_float(self):
3136
+ self.assertTrue(self.nepalinumber_float_1_25 != 1.5)
3137
+ self.assertFalse(self.nepalinumber_float_1_25 != 1.25)
3138
+
3139
+ # __neg__ tests
3140
+ def test_nepalinumber_negation(self):
3141
+ self.assertEqual(-self.nepalinumber_integer_1, nepalinumber(-1))
3142
+ self.assertEqual(-self.nepalinumber_negative_integer_1, nepalinumber(1))
3143
+ self.assertEqual(-self.nepalinumber_float_1_25, nepalinumber(-1.25))
3144
+
3145
+ # __eq__ with non-nepalinumber tests
3146
+ def test_nepalinumber_eq_with_int(self):
3147
+ self.assertTrue(self.nepalinumber_integer_1 == 1)
3148
+ self.assertFalse(self.nepalinumber_integer_1 == 2)
3149
+
3150
+ def test_nepalinumber_eq_with_float(self):
3151
+ self.assertTrue(self.nepalinumber_float_1_25 == 1.25)
3152
+ self.assertFalse(self.nepalinumber_float_1_25 == 1.5)