rosavox/lib/alveolata/math/test.spec.php

140 lines
3.7 KiB
PHP
Raw Normal View History

2025-05-23 07:33:29 +00:00
<?php
require_once(DIR_ALVEOLATA . '/math/functions.php');
$data = \alveolata\test\get_data();
\alveolata\test\add(
[
'name' => 'alveolata',
'sections' => [
[
'name' => 'math',
'sections' => [
[
'name' => 'mod',
'cases' => array_map(
function (array $case) : array {
return [
'name' => $case['name'],
'procedure' => function ($assert) use ($case) {
$result_actual = \alveolata\math\mod(
$case['input']['divident'],
$case['input']['divisor']
);
$result_expected = $case['output'];
$assert->equal($result_actual, $result_expected);
},
];
},
$data['mod']['cases']
),
],
[
'name' => 'modpow',
'cases' => array_map(
function (array $case) : array {
return [
'name' => $case['name'],
'procedure' => function ($assert) use ($case) {
$result_actual = \alveolata\math\modpow(
$case['input']['base'],
$case['input']['exponent'],
$case['input']['modulus']
);
$result_expected = $case['output'];
$assert->equal($result_actual, $result_expected);
},
];
},
$data['modpow']['cases']
),
],
[
'name' => 'set_union',
'cases' => array_map(
function (array $case) : array {
return [
'name' => $case['name'],
'procedure' => function ($assert) use ($case) {
$result_actual = \alveolata\math\set_union(
function ($x, $y) {return ($x === $y);},
$case['input']['set1'],
$case['input']['set2']
);
$result_expected = $case['output'];
$assert->equal($result_actual, $result_expected);
},
];
},
$data['set_union']['cases']
)
],
[
'name' => 'set_intersection',
'cases' => array_map(
function (array $case) : array {
return [
'name' => $case['name'],
'procedure' => function ($assert) use ($case) {
$result_actual = \alveolata\math\set_intersection(
function ($x, $y) {return ($x === $y);},
$case['input']['set1'],
$case['input']['set2']
);
$result_expected = $case['output'];
$assert->equal($result_actual, $result_expected);
},
];
},
$data['set_intersection']['cases']
)
],
[
'name' => 'set_difference',
'cases' => array_map(
function (array $case) : array {
return [
'name' => $case['name'],
'procedure' => function ($assert) use ($case) {
$result_actual = \alveolata\math\set_difference(
function ($x, $y) {return ($x === $y);},
$case['input']['set1'],
$case['input']['set2']
);
$result_expected = $case['output'];
$assert->equal($result_actual, $result_expected);
},
];
},
$data['set_difference']['cases']
)
],
[
'name' => 'order_lexicographic',
'cases' => array_map(
function (array $case) : array {
return [
'name' => $case['name'],
'procedure' => function ($assert) use ($case) {
$result_actual = \alveolata\math\order_lexicographic(
(function ($x, $y) {return ($x <= $y);}),
$case['input']['list1'],
$case['input']['list2']
);
$result_expected = $case['output'];
$assert->equal($result_actual, $result_expected);
},
];
},
$data['order_lexicographic']['cases']
)
],
],
]
]
]
);
?>