118 lines
1.9 KiB
C
118 lines
1.9 KiB
C
#include <criterion/criterion.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
|
|
#include "map.h"
|
|
|
|
/*
|
|
** TESTS: map/core.c - Initialization
|
|
*/
|
|
|
|
Test(map_core, init)
|
|
{
|
|
t_map map;
|
|
|
|
map_init(&map);
|
|
cr_assert_null(map.ranges);
|
|
cr_assert_eq(map.count, 0);
|
|
cr_assert_eq(map.capacity, 0);
|
|
}
|
|
|
|
/*
|
|
** TESTS: map/core.c - Adding ranges
|
|
*/
|
|
|
|
Test(map_core, add_single_range)
|
|
{
|
|
t_map map;
|
|
|
|
map_init(&map);
|
|
map_add(&map, 10, 20, 5, 15);
|
|
|
|
cr_assert_not_null(map.ranges);
|
|
cr_assert_eq(map.count, 1);
|
|
cr_assert_geq(map.capacity, 1);
|
|
|
|
cr_assert_eq(map.ranges[0].src_start, 10);
|
|
cr_assert_eq(map.ranges[0].src_end, 20);
|
|
cr_assert_eq(map.ranges[0].dst_start, 5);
|
|
cr_assert_eq(map.ranges[0].dst_end, 15);
|
|
|
|
map_free(&map);
|
|
}
|
|
|
|
Test(map_core, add_multiple_ranges)
|
|
{
|
|
t_map map;
|
|
|
|
map_init(&map);
|
|
map_add(&map, 1, 5, 1, 5);
|
|
map_add(&map, 10, 15, 7, 12);
|
|
map_add(&map, 20, 25, 14, 19);
|
|
|
|
cr_assert_eq(map.count, 3);
|
|
cr_assert_geq(map.capacity, 3);
|
|
|
|
cr_assert_eq(map.ranges[0].src_start, 1);
|
|
cr_assert_eq(map.ranges[1].src_start, 10);
|
|
cr_assert_eq(map.ranges[2].src_start, 20);
|
|
|
|
map_free(&map);
|
|
}
|
|
|
|
/*
|
|
** TESTS: map/core.c - Dynamic growth
|
|
*/
|
|
|
|
Test(map_core, capacity_growth)
|
|
{
|
|
t_map map;
|
|
size_t i;
|
|
|
|
map_init(&map);
|
|
|
|
for (i = 0; i < 100; i++)
|
|
{
|
|
map_add(&map, i, i + 10, i, i + 10);
|
|
}
|
|
|
|
cr_assert_eq(map.count, 100);
|
|
cr_assert_geq(map.capacity, 100);
|
|
|
|
for (i = 0; i < 100; i++)
|
|
{
|
|
cr_assert_eq(map.ranges[i].src_start, i);
|
|
cr_assert_eq(map.ranges[i].src_end, i + 10);
|
|
}
|
|
|
|
map_free(&map);
|
|
}
|
|
|
|
/*
|
|
** TESTS: map/core.c - Memory management
|
|
*/
|
|
|
|
Test(map_core, free_after_init)
|
|
{
|
|
t_map map;
|
|
|
|
map_init(&map);
|
|
map_free(&map);
|
|
|
|
cr_assert_null(map.ranges);
|
|
cr_assert_eq(map.count, 0);
|
|
cr_assert_eq(map.capacity, 0);
|
|
}
|
|
|
|
Test(map_core, free_after_add)
|
|
{
|
|
t_map map;
|
|
|
|
map_init(&map);
|
|
map_add(&map, 1, 10, 1, 10);
|
|
map_free(&map);
|
|
|
|
cr_assert_null(map.ranges);
|
|
cr_assert_eq(map.count, 0);
|
|
cr_assert_eq(map.capacity, 0);
|
|
}
|