MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_count_with_step

Method test_count_with_step

Lib/test/test_itertools.py:542–604  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

540
541 @unittest.expectedFailure # TODO: RUSTPYTHON; 'count(10.5)' != 'count(10.5, 1.0)'
542 def test_count_with_step(self):
543 self.assertEqual(lzip('abc',count(2,3)), [('a', 2), ('b', 5), ('c', 8)])
544 self.assertEqual(lzip('abc',count(start=2,step=3)),
545 [('a', 2), ('b', 5), ('c', 8)])
546 self.assertEqual(lzip('abc',count(step=-1)),
547 [('a', 0), ('b', -1), ('c', -2)])
548 self.assertRaises(TypeError, count, 'a', 'b')
549 self.assertEqual(lzip('abc',count(2,0)), [('a', 2), ('b', 2), ('c', 2)])
550 self.assertEqual(lzip('abc',count(2,1)), [('a', 2), ('b', 3), ('c', 4)])
551 self.assertEqual(lzip('abc',count(2,3)), [('a', 2), ('b', 5), ('c', 8)])
552 self.assertEqual(take(20, count(maxsize-15, 3)), take(20, range(maxsize-15, maxsize+100, 3)))
553 self.assertEqual(take(20, count(-maxsize-15, 3)), take(20, range(-maxsize-15,-maxsize+100, 3)))
554 self.assertEqual(take(3, count(10, maxsize+5)),
555 list(range(10, 10+3*(maxsize+5), maxsize+5)))
556 self.assertEqual(take(3, count(maxsize, 2)),
557 [maxsize, maxsize + 2, maxsize + 4])
558 self.assertEqual(take(3, count(maxsize, maxsize)),
559 [maxsize, 2 * maxsize, 3 * maxsize])
560 self.assertEqual(take(3, count(-maxsize, maxsize)),
561 [-maxsize, 0, maxsize])
562 self.assertEqual(take(3, count(2, 1.25)), [2, 3.25, 4.5])
563 self.assertEqual(take(3, count(2, 3.25-4j)), [2, 5.25-4j, 8.5-8j])
564 self.assertEqual(take(3, count(Decimal('1.1'), Decimal('.1'))),
565 [Decimal('1.1'), Decimal('1.2'), Decimal('1.3')])
566 self.assertEqual(take(3, count(Fraction(2,3), Fraction(1,7))),
567 [Fraction(2,3), Fraction(17,21), Fraction(20,21)])
568 BIGINT = 1<<1000
569 self.assertEqual(take(3, count(step=BIGINT)), [0, BIGINT, 2*BIGINT])
570 self.assertEqual(repr(take(3, count(10, 2.5))), repr([10, 12.5, 15.0]))
571 c = count(3, 5)
572 self.assertEqual(repr(c), 'count(3, 5)')
573 next(c)
574 self.assertEqual(repr(c), 'count(8, 5)')
575 c = count(-9, 0)
576 self.assertEqual(repr(c), 'count(-9, 0)')
577 next(c)
578 self.assertEqual(repr(c), 'count(-9, 0)')
579 c = count(-9, -3)
580 self.assertEqual(repr(c), 'count(-9, -3)')
581 next(c)
582 self.assertEqual(repr(c), 'count(-12, -3)')
583 self.assertEqual(repr(c), 'count(-12, -3)')
584 self.assertEqual(repr(count(10.5, 1.25)), 'count(10.5, 1.25)')
585 self.assertEqual(repr(count(10.5, 1)), 'count(10.5)') # suppress step=1 when it's an int
586 self.assertEqual(repr(count(10.5, 1.00)), 'count(10.5, 1.0)') # do show float values lilke 1.0
587 self.assertEqual(repr(count(10, 1.00)), 'count(10, 1.0)')
588 c = count(10, 1.0)
589 self.assertEqual(type(next(c)), int)
590 self.assertEqual(type(next(c)), float)
591
592 c = count(maxsize -2, 2)
593 self.assertEqual(repr(c), f'count({maxsize - 2}, 2)')
594 next(c) # c is now at masize
595 self.assertEqual(repr(c), f'count({maxsize}, 2)')
596 next(c)
597 self.assertEqual(repr(c), f'count({maxsize + 2}, 2)')
598
599 c = count(maxsize + 1, -1)

Callers

nothing calls this directly

Calls 10

DecimalClass · 0.90
FractionClass · 0.90
lzipFunction · 0.85
countFunction · 0.85
takeFunction · 0.85
listClass · 0.85
reprFunction · 0.85
nextFunction · 0.85
assertEqualMethod · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected