|
1 | 1 | import functools |
2 | | -import json |
3 | 2 | import re |
4 | | -import unittest |
5 | 3 | from abc import ABC, abstractmethod |
6 | | -from typing import Union, Tuple, Generic, Dict, TypeVar, NamedTuple, cast, List |
| 4 | +from typing import Union, Tuple, Generic, Dict, TypeVar, NamedTuple, cast |
7 | 5 |
|
8 | 6 | from typing_extensions import override |
9 | 7 |
|
@@ -253,73 +251,3 @@ def _precise_format(cls, val) -> ValueUnitPair: |
253 | 251 | if not uv.unit.endswith('B'): |
254 | 252 | uv = ValueUnitPair(uv.value, uv.unit + 'B') |
255 | 253 | return uv |
256 | | - |
257 | | - |
258 | | -class UnitTests(unittest.TestCase): |
259 | | - def test_1_types(self): |
260 | | - for cls in [Duration, Quantity, ByteCount]: |
261 | | - for val in [0, '18', 127, 1024, 1440]: |
262 | | - inst = cls(val + 's' if cls == Duration and isinstance(val, str) else val) # type: ignore |
263 | | - self.assertEqual(cls, type(inst)) |
264 | | - self.assertIsInstance(inst, str) |
265 | | - self.assertEqual(int(val), getattr(inst, 'value')) # type: ignore |
266 | | - |
267 | | - def test_2_1_duration_format(self): |
268 | | - self.assertEqual(123, Duration(123).value) |
269 | | - self.assertEqual(123, Duration('123s').value) |
270 | | - self.assertEqual(ValueUnitPair(2.05, 'm'), Duration('123s').auto_format()) |
271 | | - self.assertEqual(ValueUnitPair(123, 's'), Duration('123sec').precise_format()) |
272 | | - |
273 | | - self.assertEqual(1440, Duration(1440).value) |
274 | | - self.assertEqual('24m', str(Duration('1440s'))) |
275 | | - self.assertEqual(ValueUnitPair(24, 'm'), Duration('1440s').auto_format()) |
276 | | - self.assertEqual(ValueUnitPair(24, 'm'), Duration('1440s').precise_format()) |
277 | | - |
278 | | - self.assertEqual(12.3, Duration(12.3).value) |
279 | | - self.assertEqual(12.3, Duration('12.3s').value) |
280 | | - self.assertEqual(ValueUnitPair(12.3, 's'), Duration('12.3s').auto_format()) |
281 | | - self.assertEqual(ValueUnitPair(12.3, 's'), Duration('12.3s').precise_format()) |
282 | | - |
283 | | - self.assertEqual(1234.5678, Duration(1234.5678).value) |
284 | | - self.assertEqual(1234.5678, Duration('1234.5678s').value) |
285 | | - self.assertEqual(ValueUnitPair(1234.5678 / 60, 'm'), Duration('1234.5678s').auto_format()) |
286 | | - self.assertEqual(ValueUnitPair(1234.5678, 's'), Duration('1234.5678s').precise_format()) |
287 | | - |
288 | | - def test_2_2_quantity_format(self): |
289 | | - self.assertEqual(1234, Quantity(1234).value) |
290 | | - self.assertEqual(1234, Quantity('1234').value) |
291 | | - self.assertEqual(ValueUnitPair(1234 / 1024, 'Ki'), Quantity('1234').auto_format()) |
292 | | - self.assertEqual(ValueUnitPair(1234, ''), Quantity('1234').precise_format()) |
293 | | - |
294 | | - self.assertEqual(4096, Quantity(4096).value) |
295 | | - self.assertEqual('4Ki', str(Quantity('4096'))) |
296 | | - self.assertEqual(ValueUnitPair(4, 'Ki'), Quantity('4096').auto_format()) |
297 | | - self.assertEqual(ValueUnitPair(4, 'Ki'), Quantity('4096').precise_format()) |
298 | | - |
299 | | - def test_2_3_byte_count_format(self): |
300 | | - self.assertEqual(1234, ByteCount(1234).value) |
301 | | - self.assertEqual(1234, ByteCount('1234').value) |
302 | | - self.assertEqual('4KiB', str(ByteCount('4096'))) |
303 | | - |
304 | | - def test_3_convert(self): |
305 | | - from mcdreforged.api.utils import serializer |
306 | | - for cls in [Duration, Quantity, ByteCount]: |
307 | | - vals: List[Union[int, str]] = [0, 127, 1024, 1440] |
308 | | - if cls in [Duration]: |
309 | | - vals.extend(['0s', '18s', '36m']) |
310 | | - else: |
311 | | - vals += ['2Gi', '3M', '4ki'] |
312 | | - for val in vals: |
313 | | - a = cls(val) # type: ignore |
314 | | - self.assertEqual(str(a), serializer.serialize(a)) |
315 | | - |
316 | | - b = serializer.deserialize(serializer.serialize(a), cls) |
317 | | - self.assertEqual(a.value, b.value) |
318 | | - |
319 | | - c = json.loads(json.dumps(a)) |
320 | | - self.assertEqual(str(a), c) |
321 | | - |
322 | | - |
323 | | -if __name__ == '__main__': |
324 | | - unittest.main() |
325 | | - |
0 commit comments