74 lines
1.6 KiB
PHP
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);
|
|
}
|
|
]
|
|
]
|
|
],
|
|
]
|
|
],
|
|
]
|
|
]
|
|
);
|
|
|
|
?>
|