MDNodaHelpers/tests/NodaTimeSplitterTest.php

178 lines
5.3 KiB
PHP
Raw Normal View History

<?PHP
/**
* This script contains tests for the home page.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
use PHPUnit\Framework\TestCase;
require_once __DIR__ . "/../src/NodaTimeSplitter.php";
require_once __DIR__ . "/../../MD_STD/MD_STD.php";
/**
* Tests for home page.
*/
final class NodaTimeSplitterTest extends TestCase {
/**
* Test to check whether the HTML page is correctly generated.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
* @group ValidOutput
*
* @return void
*/
public function testSplitSimpleDatesHungarian():void {
$output = NodaTimeSplitter::attempt_splitting("2020.01.02.");
self::assertEquals($output, [
0 => "2020",
1 => "2020",
2 => "01",
3 => "02",
4 => "+",
5 => "",
]);
self::assertEquals(NodaTimeSplitter::timePartsToTimeName($output), "02.01.2020");
$output = NodaTimeSplitter::attempt_splitting("2020. Januar 2.");
self::assertEquals($output, [
0 => "2020",
1 => "2020",
2 => "01",
3 => "02",
4 => "+",
5 => "",
]);
self::assertEquals(NodaTimeSplitter::timePartsToTimeName($output), "02.01.2020");
$output = NodaTimeSplitter::attempt_splitting("1920-tól 1929-ig");
self::assertEquals($output, [
0 => "1920",
1 => "1929",
2 => "00",
3 => "00",
4 => "+",
5 => "",
]);
self::assertEquals(NodaTimeSplitter::timePartsToTimeName($output), "1920-1929");
$output = NodaTimeSplitter::attempt_splitting("1920-1929 között");
self::assertEquals($output, [
0 => "1920",
1 => "1929",
2 => "00",
3 => "00",
4 => "+",
5 => "",
]);
self::assertEquals(NodaTimeSplitter::timePartsToTimeName($output), "1920-1929");
$output = NodaTimeSplitter::attempt_splitting("1920-től 1929-ig");
self::assertEquals($output, [
0 => "1920",
1 => "1929",
2 => "00",
3 => "00",
4 => "+",
5 => "",
]);
self::assertEquals(NodaTimeSplitter::timePartsToTimeName($output), "1920-1929");
$output = NodaTimeSplitter::attempt_splitting("1920-es évek");
self::assertEquals($output, [
0 => "1920",
1 => "1929",
2 => "00",
3 => "00",
4 => "+",
5 => "",
]);
self::assertEquals(NodaTimeSplitter::timePartsToTimeName($output), "1920-1929");
$output = NodaTimeSplitter::attempt_splitting("2020. Januar");
self::assertEquals($output, [
0 => "2020",
1 => "2020",
2 => "01",
3 => "00",
4 => "+",
5 => "",
]);
self::assertEquals(NodaTimeSplitter::timePartsToTimeName($output), "Januar 2020");
$output = NodaTimeSplitter::attempt_splitting("Kr. e. 2020. Januar");
self::assertEquals($output, [
0 => "-2020",
1 => "-2020",
2 => "01",
3 => "00",
4 => "-",
5 => "",
]);
self::assertEquals(NodaTimeSplitter::timePartsToTimeName($output), "Januar 2020 v. Chr.");
$output = NodaTimeSplitter::attempt_splitting("Kr. e. 20. század");
self::assertEquals($output, [
0 => "-2000",
1 => "-1901",
2 => "00",
3 => "00",
4 => "-",
5 => "",
]);
self::assertEquals(NodaTimeSplitter::timePartsToTimeName($output), "2000-1901 v. Chr.");
$output = NodaTimeSplitter::attempt_splitting("Kr. e. 20.-19. század");
self::assertEquals($output, [
0 => "-2000",
1 => "-1801",
2 => "00",
3 => "00",
4 => "-",
5 => "",
]);
self::assertEquals(NodaTimeSplitter::timePartsToTimeName($output), "2000-1801 v. Chr.");
$output = NodaTimeSplitter::attempt_splitting("Kr. e. 20.-19. század-ig");
self::assertEquals($output, [
0 => "?",
1 => "-1801",
2 => "00",
3 => "00",
4 => "-",
5 => "",
]);
self::assertEquals(NodaTimeSplitter::timePartsToTimeName($output), "Bis 1801 v. Chr.");
}
/**
* Test to check whether the HTML page is correctly generated.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
* @group ValidOutput
*
* @return void
*/
public function testSplitDoesNotWorkWhenItShouldNot():void {
$output = NodaTimeSplitter::attempt_splitting("");
self::assertEquals($output, []);
$output = NodaTimeSplitter::attempt_splitting("1.2.2020-2.2.2020");
self::assertEquals($output, []);
$output = NodaTimeSplitter::attempt_splitting("2020 Januar 2-2020 Februar 2");
self::assertEquals($output, []);
$output = NodaTimeSplitter::attempt_splitting("2020 Januar-2020 Februar");
self::assertEquals($output, []);
$output = NodaTimeSplitter::attempt_splitting("Januar-Februar");
self::assertEquals($output, []);
}
}