|
3 | 3 | import datetime
|
4 | 4 | import unittest
|
5 | 5 | import warnings
|
6 |
| - |
| 6 | +from io import StringIO |
7 | 7 | import numpy as np # type: ignore
|
8 | 8 |
|
9 | 9 | from arraykit import resolve_dtype
|
|
17 | 17 | from arraykit import array_deepcopy
|
18 | 18 | from arraykit import isna_element
|
19 | 19 | from arraykit import dtype_from_element
|
| 20 | +from arraykit import split_after_count |
| 21 | +from arraykit import count_iteration |
| 22 | + |
20 | 23 | from performance.reference.util import get_new_indexers_and_screen_ak as get_new_indexers_and_screen_full
|
21 | 24 | from arraykit import get_new_indexers_and_screen
|
22 | 25 |
|
@@ -442,5 +445,58 @@ def test_get_new_indexers_and_screen_b(self) -> None:
|
442 | 445 | assert tuple(map(list, postB)) == (list(indexersB), list(indexersB))
|
443 | 446 |
|
444 | 447 |
|
| 448 | + #--------------------------------------------------------------------------- |
| 449 | + def test_split_after_count_a(self) -> None: |
| 450 | + post = split_after_count('a,b,c,d,e', ',', 2) |
| 451 | + self.assertEqual(post[0], 'a,b') |
| 452 | + self.assertEqual(post[1], 'c,d,e') |
| 453 | + |
| 454 | + def test_split_after_count_b(self) -> None: |
| 455 | + post = split_after_count('a,b,c,d,e', ',', 4) |
| 456 | + self.assertEqual(post[0], 'a,b,c,d') |
| 457 | + self.assertEqual(post[1], 'e') |
| 458 | + |
| 459 | + def test_split_after_count_c(self) -> None: |
| 460 | + post = split_after_count('a,b,c,d,e', ',', 5) |
| 461 | + self.assertEqual(post[0], 'a,b,c,d,e') |
| 462 | + self.assertEqual(post[1], '') |
| 463 | + |
| 464 | + def test_split_after_count_d(self) -> None: |
| 465 | + post = split_after_count('a', ',', 5) |
| 466 | + self.assertEqual(post[0], 'a') |
| 467 | + self.assertEqual(post[1], '') |
| 468 | + |
| 469 | + def test_split_after_count_e(self) -> None: |
| 470 | + with self.assertRaises(RuntimeError): |
| 471 | + post = split_after_count('a,', ',', 0) |
| 472 | + |
| 473 | + def test_split_after_count_f(self) -> None: |
| 474 | + post = split_after_count('a,', ',', 1) |
| 475 | + self.assertEqual(post[0], 'a') |
| 476 | + self.assertEqual(post[1], '') |
| 477 | + |
| 478 | + def test_split_after_count_g(self) -> None: |
| 479 | + post = split_after_count(',', ',', 1) |
| 480 | + self.assertEqual(post[0], '') |
| 481 | + self.assertEqual(post[1], '') |
| 482 | + |
| 483 | + def test_split_after_count_h(self) -> None: |
| 484 | + post = split_after_count('a,b,c,d,e', '|', 5) |
| 485 | + self.assertEqual(post[0], 'a,b,c,d,e') |
| 486 | + self.assertEqual(post[1], '') |
| 487 | + |
| 488 | + |
| 489 | + #--------------------------------------------------------------------------- |
| 490 | + def test_count_iteration_a(self) -> None: |
| 491 | + post = count_iteration(('a', 'b', 'c', 'd')) |
| 492 | + self.assertEqual(post, 4) |
| 493 | + |
| 494 | + def test_count_iteration_b(self) -> None: |
| 495 | + s1 = StringIO(',1,a,b\n-,1,43,54\nX,2,1,3\nY,1,8,10\n-,2,6,20') |
| 496 | + post = count_iteration(s1) |
| 497 | + self.assertEqual(post, 5) |
| 498 | + |
| 499 | + |
| 500 | + |
445 | 501 | if __name__ == '__main__':
|
446 | 502 | unittest.main()
|
0 commit comments