*/ declare(strict_types = 1); use PHPUnit\Framework\TestCase; /** * Tests for MD_STD. */ final class MD_STD_Test extends TestCase { /** * Returns sample dates and their equivalent integer values according * to MD_STD::date_to_int(). * * @return array */ public static function date_to_int_provider():array { $values = [ ["2022-01-01", 20220101], ["0022-01-01", 220101], ["-0022-01-01", -220101], ["-2022-01-01", -20220101], ["-0001-01-01", -10101], ["0000-01-01", 101], ["100000-01-01", 1000000101], ]; $output = []; foreach ($values as $value) { $output[$value[0]] = $value; } return $output; } /** * Checks if dates can be translated to int and back. * * @dataProvider \MD_STD_Test::date_to_int_provider * * @param string $date Date to translate. * @param integer $expectedInt Expected integer value for it. * * @return void */ public function test_date_to_int(string $date, int $expectedInt):void { $toInt = MD_STD::date_to_int($date); $toStr = MD_STD::int_to_date($toInt); self::assertEquals($expectedInt, $toInt); self::assertEquals($date, $toStr); } }