test(null, '|TEST'); } public function testNumbersWithSuffix() { $this->test('|TEST'); } public function testCommonNumbers() { $this->test(); } public function testDates() { $this->test('/YYYY'); $this->test('/yy'); $this->test(null, 'YYYY-'); $this->test(null, 'yy-'); } protected function test($prefix = null, $suffix = null) { $date = date('Y-m-d H:i:s'); $info = Generator::dateToPattern($date); // Individuazione valori relativi a suffisso e prefisso $prefix_value = Generator::complete($prefix, $info); $suffix_value = Generator::complete($suffix, $info); $step = 3; // Pattern di base con numero di caratteri incrementale $pattern = $prefix.'#'.$suffix; $previous = null; for ($i = 0; $i < 10000; $i = $i + $step) { $value = $prefix_value.$this->pad($i + 1, $length).$suffix_value; $this->assertEquals($value, Generator::generate($pattern, $previous, $step, $info)); $previous = $value; } // Pattern con padding $length = 5; $pattern = $prefix.str_repeat('#', $length).$suffix; $previous = null; for ($i = 0; $i < 10000; $i = $i + $step) { $value = $prefix_value.$this->pad($i + 1, $length).$suffix_value; $this->assertEquals($value, Generator::generate($pattern, $previous, $step, $info)); $previous = $value; } } protected function pad($number, $length) { return str_pad($number, $length, '0', STR_PAD_LEFT); } }