rosavox/lib/alveolata/algorithm/test.spec.php
2025-05-23 07:33:29 +00:00

74 lines
1.6 KiB
PHP

<?php
require_once(DIR_ALVEOLATA . '/algorithm/functions.php');
\alveolata\test\add(
[
'name' => 'alveolata',
'sections' => [
[
'name' => 'algorithm',
'sections' => [
[
'name' => 'topsort',
'cases' => [
[
'name' => 'test',
'procedure' => function ($assert) {
$order = [
'qux' => ['bar','baz'],
'bar' => ['foo'],
'foo' => [],
'baz' => ['foo'],
];
$result_actual = \alveolata\algorithm\topsort($order);
$results_possible = [
['foo','bar','baz','qux'],
['foo','baz','bar','qux'],
];
$found = false;
foreach ($results_possible as $result_expected) {
if ($result_actual === $result_expected) {
$found = true;
break;
}
}
$assert->equal($found, true);
}
],
]
],
[
'name' => 'levenshtein',
'cases' => [
[
'name' => 'test1',
'procedure' => function ($assert) {
$result = \alveolata\algorithm\levenshtein('', '');
$assert->equal($result, 0);
}
],
[
'name' => 'test2',
'procedure' => function ($assert) {
$result = \alveolata\algorithm\levenshtein('tier', 'tor');
$assert->equal($result, 2);
}
],
[
'name' => 'test3',
'procedure' => function ($assert) {
$result = \alveolata\algorithm\levenshtein('tier', 'vier');
$assert->equal($result, 1);
}
]
]
],
]
],
]
]
);
?>