19declare(strict_types=1);
22use PHPUnit\Framework\TestCase;
33 $this->assertInstanceOf(Range::class,
$range);
37 #[\PHPUnit\Framework\Attributes\Depends('testFactory')]
44 #[\PHPUnit\Framework\Attributes\Depends('testFactory')]
50 #[\PHPUnit\Framework\Attributes\Depends('testFactory')]
60 #[\PHPUnit\Framework\Attributes\Depends('testWithLength')]
70 #[\PHPUnit\Framework\Attributes\Depends('testWithStart')]
79 #[\PHPUnit\Framework\Attributes\Depends('testFactory')]
82 $this->expectException(InvalidArgumentException::class);
86 #[\PHPUnit\Framework\Attributes\Depends('testFactory')]
89 $this->expectException(InvalidArgumentException::class);
95 $this->expectException(InvalidArgumentException::class);
102 $this->expectException(InvalidArgumentException::class);
107 #[\PHPUnit\Framework\Attributes\DataProvider('cropCases')]
111 $range =
$f->range($start, $length);
115 $this->assertEquals(
$range, $cropped);
117 $this->assertEquals(min($max, $start), $cropped->getStart());
118 $this->assertEquals($max, $cropped->getEnd());
125 [0, 100, 1000,
false],
126 [0, 1000, 100,
true],
128 [50, 100, 200,
false],
A simple class to express a naive range of whole positive numbers.
croppedTo(int $max)
This will create a range that is guaranteed to not exceed $max.
testConstructionWrongLength()
testConstructionWrongStart()
testWithLength(Range $range)
testNegativeLength(Range $range)
testWithStart(Range $range)
testNegativeStart(Range $range)
testEndCalculation(Range $range)
testCroppedTo($start, $length, $max, $has_changed)