isGreaterThan(Level::Low)); } public function testIsGreaterThanReturnsFalseWhenEqual(): void { self::assertFalse(Level::Medium->isGreaterThan(Level::Medium)); } public function testIsGreaterThanReturnsFalseWhenLower(): void { self::assertFalse(Level::Low->isGreaterThan(Level::High)); } // ------------------------------------------------------------------------- // isGreaterThanOrEqual() // ------------------------------------------------------------------------- public function testIsGreaterThanOrEqualReturnsTrueWhenHigher(): void { self::assertTrue(Level::High->isGreaterThanOrEqual(Level::Low)); } public function testIsGreaterThanOrEqualReturnsTrueWhenEqual(): void { self::assertTrue(Level::Medium->isGreaterThanOrEqual(Level::Medium)); } public function testIsGreaterThanOrEqualReturnsFalseWhenLower(): void { self::assertFalse(Level::Low->isGreaterThanOrEqual(Level::High)); } // ------------------------------------------------------------------------- // isLessThan() // ------------------------------------------------------------------------- public function testIsLessThanReturnsTrueWhenLower(): void { self::assertTrue(Level::Low->isLessThan(Level::High)); } public function testIsLessThanReturnsFalseWhenEqual(): void { self::assertFalse(Level::Medium->isLessThan(Level::Medium)); } public function testIsLessThanReturnsFalseWhenHigher(): void { self::assertFalse(Level::High->isLessThan(Level::Low)); } // ------------------------------------------------------------------------- // isLessThanOrEqual() // ------------------------------------------------------------------------- public function testIsLessThanOrEqualReturnsTrueWhenLower(): void { self::assertTrue(Level::Low->isLessThanOrEqual(Level::High)); } public function testIsLessThanOrEqualReturnsTrueWhenEqual(): void { self::assertTrue(Level::Medium->isLessThanOrEqual(Level::Medium)); } public function testIsLessThanOrEqualReturnsFalseWhenHigher(): void { self::assertFalse(Level::High->isLessThanOrEqual(Level::Low)); } // ------------------------------------------------------------------------- // between() // ------------------------------------------------------------------------- public function testBetweenReturnsTrueWhenWithinRange(): void { self::assertTrue(Level::Medium->between(Level::Low, Level::High)); } public function testBetweenReturnsTrueAtLowerBound(): void { self::assertTrue(Level::Low->between(Level::Low, Level::High)); } public function testBetweenReturnsTrueAtUpperBound(): void { self::assertTrue(Level::High->between(Level::Low, Level::High)); } public function testBetweenReturnsFalseWhenBelowRange(): void { self::assertFalse(Level::Low->between(Level::Medium, Level::Ultra)); } public function testBetweenReturnsFalseWhenAboveRange(): void { self::assertFalse(Level::Ultra->between(Level::Low, Level::High)); } // ------------------------------------------------------------------------- // clamp() // ------------------------------------------------------------------------- public function testClampReturnsValueWhenWithinRange(): void { self::assertSame(Level::Medium, Level::Medium->clamp(Level::Low, Level::High)); } public function testClampReturnsMinWhenBelowRange(): void { self::assertSame(Level::Medium, Level::Low->clamp(Level::Medium, Level::Ultra)); } public function testClampReturnsMaxWhenAboveRange(): void { self::assertSame(Level::High, Level::Ultra->clamp(Level::Low, Level::High)); } public function testClampReturnsMinWhenEqualToMin(): void { self::assertSame(Level::Low, Level::Low->clamp(Level::Low, Level::High)); } public function testClampReturnsMaxWhenEqualToMax(): void { self::assertSame(Level::High, Level::High->clamp(Level::Low, Level::High)); } }