139 lines
3.7 KiB
PHP
139 lines
3.7 KiB
PHP
<?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']
|
|
)
|
|
],
|
|
],
|
|
]
|
|
]
|
|
]
|
|
);
|
|
|
|
?>
|