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.
- nepali/__init__.py +1 -1
- nepali/char.py +102 -81
- nepali/constants.py +66 -0
- nepali/date_converter.py +334 -0
- nepali/datetime/__init__.py +13 -14
- nepali/datetime/_datetime.py +391 -402
- nepali/datetime/_formatter.py +325 -0
- nepali/datetime/_humanize.py +117 -132
- nepali/datetime/_nepalimonth.py +118 -0
- nepali/datetime/_nepaliweek.py +125 -0
- nepali/datetime/parser/__init__.py +4 -4
- nepali/datetime/parser/_parser.py +59 -50
- nepali/datetime/parser/validators.py +249 -159
- nepali/datetime/utils.py +38 -0
- nepali/exceptions.py +8 -3
- nepali/locations/__init__.py +3 -0
- nepali/locations/_data.py +4271 -0
- nepali/locations/_locations.py +38 -0
- nepali/locations/models.py +104 -0
- nepali/locations/utils.py +54 -0
- nepali/number/__init__.py +19 -0
- nepali/number/_nepalinumber.py +563 -0
- nepali/number/_number.py +53 -0
- nepali/number/utils.py +72 -0
- nepali/phone_number.py +183 -0
- nepali/templatetags/__init__.py +0 -0
- nepali/templatetags/nepalidatetime.py +194 -24
- nepali/templatetags/nepalinumber.py +97 -7
- nepali/tests/test_date_converter.py +148 -0
- nepali/tests/test_datetime.py +275 -29
- nepali/tests/test_humanize.py +78 -7
- nepali/tests/test_locations.py +154 -0
- nepali/tests/test_nepalimonth.py +152 -0
- nepali/tests/test_nepaliweek.py +154 -0
- nepali/tests/test_number.py +3152 -0
- nepali/tests/test_parser.py +82 -69
- nepali/tests/test_phone_number.py +254 -0
- nepali/tests/test_timezone.py +192 -0
- nepali/timezone.py +50 -7
- nepali/utils.py +9 -68
- nepali-1.2.0.dist-info/METADATA +476 -0
- nepali-1.2.0.dist-info/RECORD +46 -0
- {nepali-0.5.5.dist-info → nepali-1.2.0.dist-info}/WHEEL +1 -1
- {nepali-0.5.5.dist-info → nepali-1.2.0.dist-info/licenses}/LICENSE +1 -1
- {nepali-0.5.5.dist-info → nepali-1.2.0.dist-info}/top_level.txt +0 -0
- nepali/datetime/_converter.py +0 -394
- nepali/datetime/_formarter.py +0 -314
- nepali/datetime.py +0 -1169
- nepali/number.py +0 -51
- nepali-0.5.5.dist-info/METADATA +0 -220
- 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)
|