mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-23 07:29:28 +01:00
unit: add linear mapping test
This commit is contained in:
parent
bb57d61add
commit
c40e665094
@ -184,6 +184,75 @@ static void ip_prefix_test(const void *data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct linear_map_case {
|
||||||
|
double value;
|
||||||
|
double a_start;
|
||||||
|
double a_end;
|
||||||
|
double b_start;
|
||||||
|
double b_end;
|
||||||
|
double expected;
|
||||||
|
|
||||||
|
bool fails : 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct linear_map_case cases[] = {
|
||||||
|
/* Value out of range */
|
||||||
|
{
|
||||||
|
.value = 100,
|
||||||
|
.a_start = 1,
|
||||||
|
.a_end = 3,
|
||||||
|
.b_start = 10,
|
||||||
|
.b_end = 12,
|
||||||
|
.fails = true,
|
||||||
|
},
|
||||||
|
/* Ascending start range */
|
||||||
|
{
|
||||||
|
.value = 1,
|
||||||
|
.a_start = 0,
|
||||||
|
.a_end = 2,
|
||||||
|
.b_start = 10,
|
||||||
|
.b_end = 12,
|
||||||
|
.expected = 11,
|
||||||
|
},
|
||||||
|
/* Descending start range */
|
||||||
|
{
|
||||||
|
.value = 1,
|
||||||
|
.a_start = 2,
|
||||||
|
.a_end = 0,
|
||||||
|
.b_start = 10,
|
||||||
|
.b_end = 12,
|
||||||
|
.expected = 11,
|
||||||
|
},
|
||||||
|
/* Negatives */
|
||||||
|
{
|
||||||
|
.value = -1,
|
||||||
|
.a_start = -2,
|
||||||
|
.a_end = 0,
|
||||||
|
.b_start = 0,
|
||||||
|
.b_end = 2,
|
||||||
|
.expected = 1,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static void test_linear_map(const void *data)
|
||||||
|
{
|
||||||
|
double mapped;
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
|
for (i = 0; i < L_ARRAY_SIZE(cases); i++) {
|
||||||
|
struct linear_map_case *c = &cases[i];
|
||||||
|
bool ret = util_linear_map(c->value, c->a_start, c->a_end,
|
||||||
|
c->b_start, c->b_end, &mapped);
|
||||||
|
if (c->fails) {
|
||||||
|
assert(ret == false);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(ret);
|
||||||
|
assert(mapped == c->expected);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
l_test_init(&argc, &argv);
|
l_test_init(&argc, &argv);
|
||||||
@ -192,6 +261,7 @@ int main(int argc, char *argv[])
|
|||||||
l_test_add("/util/get_domain/", get_domain_test, NULL);
|
l_test_add("/util/get_domain/", get_domain_test, NULL);
|
||||||
l_test_add("/util/get_username/", get_username_test, NULL);
|
l_test_add("/util/get_username/", get_username_test, NULL);
|
||||||
l_test_add("/util/ip_prefix/", ip_prefix_test, NULL);
|
l_test_add("/util/ip_prefix/", ip_prefix_test, NULL);
|
||||||
|
l_test_add("/util/test_linear_map", test_linear_map, NULL);
|
||||||
|
|
||||||
return l_test_run();
|
return l_test_run();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user