196 lines
3.6 KiB
Nix
196 lines
3.6 KiB
Nix
{
|
|
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;
|
|
};
|
|
}
|