init
This commit is contained in:
195
tests/iterate-tests.nix
Normal file
195
tests/iterate-tests.nix
Normal file
@@ -0,0 +1,195 @@
|
||||
{
|
||||
lib,
|
||||
iterate,
|
||||
ip,
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (lib) runTests;
|
||||
|
||||
in
|
||||
runTests {
|
||||
testRangeBasic = {
|
||||
expr = iterate.rangeStr "10.0.0.1" "10.0.0.3";
|
||||
expected = [
|
||||
"10.0.0.1"
|
||||
"10.0.0.2"
|
||||
"10.0.0.3"
|
||||
];
|
||||
};
|
||||
|
||||
testRangeSingle = {
|
||||
expr = iterate.rangeStr "10.0.0.1" "10.0.0.1";
|
||||
expected = [ "10.0.0.1" ];
|
||||
};
|
||||
|
||||
testRangeEmpty = {
|
||||
expr = iterate.rangeStr "10.0.0.5" "10.0.0.1";
|
||||
expected = [ ];
|
||||
};
|
||||
|
||||
testRangeCrossOctet = {
|
||||
expr = iterate.rangeStr "10.0.0.254" "10.0.1.2";
|
||||
expected = [
|
||||
"10.0.0.254"
|
||||
"10.0.0.255"
|
||||
"10.0.1.0"
|
||||
"10.0.1.1"
|
||||
"10.0.1.2"
|
||||
];
|
||||
};
|
||||
|
||||
testCidrAddresses30 = {
|
||||
expr = iterate.cidrAddressesStr "10.0.0.0/30";
|
||||
expected = [
|
||||
"10.0.0.0"
|
||||
"10.0.0.1"
|
||||
"10.0.0.2"
|
||||
"10.0.0.3"
|
||||
];
|
||||
};
|
||||
|
||||
testCidrAddresses32 = {
|
||||
expr = iterate.cidrAddressesStr "10.0.0.1/32";
|
||||
expected = [ "10.0.0.1" ];
|
||||
};
|
||||
|
||||
testCidrAddressesCount = {
|
||||
expr = builtins.length (iterate.cidrAddresses "10.0.0.0/28");
|
||||
expected = 16;
|
||||
};
|
||||
|
||||
testCidrHosts30 = {
|
||||
expr = iterate.cidrHostsStr "10.0.0.0/30";
|
||||
expected = [
|
||||
"10.0.0.1"
|
||||
"10.0.0.2"
|
||||
];
|
||||
};
|
||||
|
||||
testCidrHosts31 = {
|
||||
expr = iterate.cidrHostsStr "10.0.0.0/31";
|
||||
expected = [
|
||||
"10.0.0.0"
|
||||
"10.0.0.1"
|
||||
];
|
||||
};
|
||||
|
||||
testCidrHosts32 = {
|
||||
expr = iterate.cidrHostsStr "10.0.0.1/32";
|
||||
expected = [ "10.0.0.1" ];
|
||||
};
|
||||
|
||||
testCidrHostsCount = {
|
||||
expr = builtins.length (iterate.cidrHosts "10.0.0.0/28");
|
||||
expected = 14;
|
||||
};
|
||||
|
||||
testInRangeTrue = {
|
||||
expr = iterate.inRange "10.0.0.1" "10.0.0.5" "10.0.0.3";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testInRangeStart = {
|
||||
expr = iterate.inRange "10.0.0.1" "10.0.0.5" "10.0.0.1";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testInRangeEnd = {
|
||||
expr = iterate.inRange "10.0.0.1" "10.0.0.5" "10.0.0.5";
|
||||
expected = true;
|
||||
};
|
||||
|
||||
testInRangeFalseLow = {
|
||||
expr = iterate.inRange "10.0.0.2" "10.0.0.5" "10.0.0.1";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testInRangeFalseHigh = {
|
||||
expr = iterate.inRange "10.0.0.1" "10.0.0.5" "10.0.0.6";
|
||||
expected = false;
|
||||
};
|
||||
|
||||
testCountRangeBasic = {
|
||||
expr = iterate.countRange "10.0.0.1" "10.0.0.10";
|
||||
expected = 10;
|
||||
};
|
||||
|
||||
testCountRangeSingle = {
|
||||
expr = iterate.countRange "10.0.0.1" "10.0.0.1";
|
||||
expected = 1;
|
||||
};
|
||||
|
||||
testCountRangeEmpty = {
|
||||
expr = iterate.countRange "10.0.0.5" "10.0.0.1";
|
||||
expected = 0;
|
||||
};
|
||||
|
||||
testMapRangeFormat = {
|
||||
expr = iterate.mapRange ip.format "10.0.0.1" "10.0.0.3";
|
||||
expected = [
|
||||
"10.0.0.1"
|
||||
"10.0.0.2"
|
||||
"10.0.0.3"
|
||||
];
|
||||
};
|
||||
|
||||
testMapRangeOctets = {
|
||||
expr = iterate.mapRange ip.toOctets "10.0.0.1" "10.0.0.2";
|
||||
expected = [
|
||||
[
|
||||
10
|
||||
0
|
||||
0
|
||||
1
|
||||
]
|
||||
[
|
||||
10
|
||||
0
|
||||
0
|
||||
2
|
||||
]
|
||||
];
|
||||
};
|
||||
|
||||
testFilterRangeEven = {
|
||||
expr = builtins.map ip.format (iterate.filterRange (i: lib.mod i 2 == 0) "10.0.0.1" "10.0.0.5");
|
||||
expected = [
|
||||
"10.0.0.2"
|
||||
"10.0.0.4"
|
||||
];
|
||||
};
|
||||
|
||||
testTakeRangeBasic = {
|
||||
expr = iterate.takeRangeStr 3 "10.0.0.1" "10.0.0.10";
|
||||
expected = [
|
||||
"10.0.0.1"
|
||||
"10.0.0.2"
|
||||
"10.0.0.3"
|
||||
];
|
||||
};
|
||||
|
||||
testTakeRangeMoreThanAvailable = {
|
||||
expr = iterate.takeRangeStr 10 "10.0.0.1" "10.0.0.3";
|
||||
expected = [
|
||||
"10.0.0.1"
|
||||
"10.0.0.2"
|
||||
"10.0.0.3"
|
||||
];
|
||||
};
|
||||
|
||||
testTakeRangeZero = {
|
||||
expr = iterate.takeRangeStr 0 "10.0.0.1" "10.0.0.10";
|
||||
expected = [ ];
|
||||
};
|
||||
|
||||
testFindInRangeBasic = {
|
||||
expr = iterate.findInRangeStr (i: lib.mod i 5 == 0) "10.0.0.1" "10.0.0.10";
|
||||
expected = "10.0.0.5";
|
||||
};
|
||||
|
||||
testFindInRangeNotFound = {
|
||||
expr = iterate.findInRange (i: i > 1000000000) "10.0.0.1" "10.0.0.10";
|
||||
expected = null;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user