assertSame($expected_rates, $rates); } /** * @covers App\Services\DynamicRate::getRateByTime */ public function testGetRateByTime(): void { $max_rate = 3; $max_rate_time = 22; $min_rate = 0.5; $min_rate_time = 3; $method = 'logistic'; $expected_rate = 2.69; $rate = DynamicRate::getRateByTime($max_rate, $max_rate_time, $min_rate, $min_rate_time, -1, $method); $this->assertSame($expected_rate, $rate); } /** * @covers App\Services\DynamicRate::validateData */ public function testValidateData(): void { $max_rate = 3; $max_rate_time = 22; $min_rate = 0.5; $min_rate_time = 3; $this->assertTrue(DynamicRate::validateData($max_rate, $max_rate_time, $min_rate, $min_rate_time)); $max_rate = -1; $this->assertFalse(DynamicRate::validateData($max_rate, $max_rate_time, $min_rate, $min_rate_time)); $max_rate = 3; $max_rate_time = 25; $this->assertFalse(DynamicRate::validateData($max_rate, $max_rate_time, $min_rate, $min_rate_time)); $max_rate_time = 22; $min_rate = -1; $this->assertFalse(DynamicRate::validateData($max_rate, $max_rate_time, $min_rate, $min_rate_time)); $min_rate = 0.5; $min_rate_time = -1; $this->assertFalse(DynamicRate::validateData($max_rate, $max_rate_time, $min_rate, $min_rate_time)); } /** * @covers App\Services\DynamicRate::logistic */ public function testLogistic(): void { $max_rate = 3; $max_rate_time = 22; $min_rate = 0.5; $min_rate_time = 3; $time = 6; $expected_rate = 0.53; $rate = DynamicRate::logistic($max_rate, $max_rate_time, $min_rate, $min_rate_time, $time); $this->assertSame($expected_rate, $rate); } /** * @covers App\Services\DynamicRate::linear */ public function testLinear(): void { $max_rate = 3; $max_rate_time = 22; $min_rate = 0.5; $min_rate_time = 3; $time = 6; $expected_rate = 0.89; $rate = DynamicRate::linear($max_rate, $max_rate_time, $min_rate, $min_rate_time, $time); $this->assertSame($expected_rate, $rate); } }