Cover more edge cases for splitting time names

This commit is contained in:
2025-01-15 11:49:20 +01:00
parent 9c2eaa2929
commit 51fe9a5e45
3 changed files with 281 additions and 25 deletions

View File

@ -118,6 +118,97 @@ final class NodaTimeSplitterTest extends TestCase {
self::assertEquals($output->toTimeName(), "02.01.2020");
self::assertEquals(NodaTimeSplitter::timePartsToCountingYear($output), 2020);
$output = NodaTimeSplitter::attempt_splitting("?.1.2020");
self::assertNotEmpty($output);
self::assertEquals($output->toOldFormat(), [
0 => "2020",
1 => "2020",
2 => "01",
3 => "00",
4 => "+",
5 => "",
]);
self::assertEquals($output->toTimeName(), "Januar 2020");
self::assertEquals(NodaTimeSplitter::timePartsToCountingYear($output), 2020);
$output = NodaTimeSplitter::attempt_splitting("?.11.2020");
self::assertNotEmpty($output);
self::assertEquals($output->toOldFormat(), [
0 => "2020",
1 => "2020",
2 => "11",
3 => "00",
4 => "+",
5 => "",
]);
self::assertEquals($output->toTimeName(), "November 2020");
self::assertEquals(NodaTimeSplitter::timePartsToCountingYear($output), 2020);
$output = NodaTimeSplitter::attempt_splitting(".2020");
self::assertNotEmpty($output);
self::assertEquals($output->toOldFormat(), [
0 => "2020",
1 => "2020",
2 => "00",
3 => "00",
4 => "+",
5 => "",
]);
self::assertEquals($output->toTimeName(), "2020");
self::assertEquals(NodaTimeSplitter::timePartsToCountingYear($output), 2020);
$output = NodaTimeSplitter::attempt_splitting("0-2020");
self::assertNotEmpty($output);
self::assertEquals($output->toOldFormat(), [
0 => "2020",
1 => "2020",
2 => "00",
3 => "00",
4 => "+",
5 => "",
]);
self::assertEquals($output->toTimeName(), "2020");
self::assertEquals(NodaTimeSplitter::timePartsToCountingYear($output), 2020);
$output = NodaTimeSplitter::attempt_splitting("2020-0");
self::assertNotEmpty($output);
self::assertEquals($output->toOldFormat(), [
0 => "2020",
1 => "2020",
2 => "00",
3 => "00",
4 => "+",
5 => "",
]);
self::assertEquals($output->toTimeName(), "2020");
self::assertEquals(NodaTimeSplitter::timePartsToCountingYear($output), 2020);
$output = NodaTimeSplitter::attempt_splitting("? 2020");
self::assertNotEmpty($output);
self::assertEquals($output->toOldFormat(), [
0 => "2020",
1 => "2020",
2 => "00",
3 => "00",
4 => "+",
5 => "",
]);
self::assertEquals($output->toTimeName(), "2020");
self::assertEquals(NodaTimeSplitter::timePartsToCountingYear($output), 2020);
$output = NodaTimeSplitter::attempt_splitting("?.?.2020");
self::assertNotEmpty($output);
self::assertEquals($output->toOldFormat(), [
0 => "2020",
1 => "2020",
2 => "00",
3 => "00",
4 => "+",
5 => "",
]);
self::assertEquals($output->toTimeName(), "2020");
self::assertEquals(NodaTimeSplitter::timePartsToCountingYear($output), 2020);
$output = NodaTimeSplitter::attempt_splitting("1920-1929");
self::assertNotEmpty($output);
self::assertEquals($output->toOldFormat(), [
@ -463,6 +554,32 @@ final class NodaTimeSplitterTest extends TestCase {
self::assertEquals($output->toTimeName(), "1945-1948");
self::assertEquals(NodaTimeSplitter::timePartsToCountingYear($output), 1947);
$output = NodaTimeSplitter::attempt_splitting("1945 und 1946");
self::assertNotEmpty($output);
self::assertEquals($output->toOldFormat(), [
0 => "1945",
1 => "1946",
2 => "00",
3 => "00",
4 => "+",
5 => "",
]);
self::assertEquals($output->toTimeName(), "1945-1946");
self::assertEquals(NodaTimeSplitter::timePartsToCountingYear($output), 1946);
$output = NodaTimeSplitter::attempt_splitting("1945 oder 1946");
self::assertNotEmpty($output);
self::assertEquals($output->toOldFormat(), [
0 => "1945",
1 => "1946",
2 => "00",
3 => "00",
4 => "+",
5 => "",
]);
self::assertEquals($output->toTimeName(), "1945-1946");
self::assertEquals(NodaTimeSplitter::timePartsToCountingYear($output), 1946);
$output = NodaTimeSplitter::attempt_splitting("20.-19. Jahrhundert v. Chr.");
self::assertNotEmpty($output);
self::assertEquals($output->toOldFormat(), [
@ -1016,6 +1133,81 @@ final class NodaTimeSplitterTest extends TestCase {
"counting_time_bcce" => "+",
]);
$output = NodaTimeSplitter::attempt_splitting_from_till("14.-15.03.2019");
self::assertNotEmpty($output);
self::assertEquals($output, [
'start_name' => "14.03.2019",
'end_name' => "15.03.2019",
"start_year" => '2019',
"end_year" => '2019',
'start_date' => '2019-03-14',
'end_date' => '2019-03-15',
"counting_time_year" => "2019",
"counting_time_month" => "03",
"counting_time_day" => "15",
"counting_time_bcce" => "+",
]);
$output = NodaTimeSplitter::attempt_splitting_from_till("3.-7.9.1819");
self::assertNotEmpty($output);
self::assertEquals($output, [
'start_name' => "03.09.1819",
'end_name' => "07.09.1819",
"start_year" => '1819',
"end_year" => '1819',
'start_date' => '1819-09-03',
'end_date' => '1819-09-07',
"counting_time_year" => "1819",
"counting_time_month" => "09",
"counting_time_day" => "05",
"counting_time_bcce" => "+",
]);
$output = NodaTimeSplitter::attempt_splitting_from_till("3.-15.9.1819");
self::assertNotEmpty($output);
self::assertEquals($output, [
'start_name' => "03.09.1819",
'end_name' => "15.09.1819",
"start_year" => '1819',
"end_year" => '1819',
'start_date' => '1819-09-03',
'end_date' => '1819-09-15',
"counting_time_year" => "1819",
"counting_time_month" => "09",
"counting_time_day" => "09",
"counting_time_bcce" => "+",
]);
$output = NodaTimeSplitter::attempt_splitting_from_till("14.-15.9.1819");
self::assertNotEmpty($output);
self::assertEquals($output, [
'start_name' => "14.09.1819",
'end_name' => "15.09.1819",
"start_year" => '1819',
"end_year" => '1819',
'start_date' => '1819-09-14',
'end_date' => '1819-09-15',
"counting_time_year" => "1819",
"counting_time_month" => "09",
"counting_time_day" => "15",
"counting_time_bcce" => "+",
]);
$output = NodaTimeSplitter::attempt_splitting_from_till("14.-15.11.1819");
self::assertNotEmpty($output);
self::assertEquals($output, [
'start_name' => "14.11.1819",
'end_name' => "15.11.1819",
"start_year" => '1819',
"end_year" => '1819',
'start_date' => '1819-11-14',
'end_date' => '1819-11-15',
"counting_time_year" => "1819",
"counting_time_month" => "11",
"counting_time_day" => "15",
"counting_time_bcce" => "+",
]);
$output = NodaTimeSplitter::attempt_splitting_from_till("2019.03.14-15");
self::assertNotEmpty($output);
self::assertEquals($output, [