2015-09-06 00:41:38 +02:00
|
|
|
#include <csptr/smalloc.h>
|
2015-08-21 06:30:20 +02:00
|
|
|
|
|
|
|
#include "criterion/criterion.h"
|
2015-11-17 16:30:00 +01:00
|
|
|
#include "criterion/internal/ordered-set.h"
|
2015-08-21 06:30:20 +02:00
|
|
|
|
|
|
|
int compare_gt(void *a, void *b) {
|
|
|
|
int *ia = a, *ib = b;
|
|
|
|
return *ia == *ib ? 0 : (*ia > *ib ? -1 : 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
int compare_lt(void *a, void *b) {
|
|
|
|
int *ia = a, *ib = b;
|
|
|
|
return *ia == *ib ? 0 : (*ia < *ib ? -1 : 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
Test(ordered_set, contract_lt) {
|
2015-09-06 00:41:38 +02:00
|
|
|
struct criterion_ordered_set *set = new_ordered_set(compare_lt, NULL);
|
2015-08-21 06:30:20 +02:00
|
|
|
|
|
|
|
insert_ordered_set(set, &(int[1]) { 1 }, sizeof (int));
|
|
|
|
insert_ordered_set(set, &(int[1]) { 8 }, sizeof (int));
|
|
|
|
insert_ordered_set(set, &(int[1]) { 3 }, sizeof (int));
|
|
|
|
|
|
|
|
int *prev = NULL;
|
|
|
|
FOREACH_SET(int *e, set) {
|
|
|
|
if (prev)
|
|
|
|
cr_assert_lt(*prev, *e);
|
|
|
|
prev = e;
|
|
|
|
}
|
2015-09-06 00:41:38 +02:00
|
|
|
|
|
|
|
sfree(set);
|
2015-08-21 06:30:20 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
Test(ordered_set, contract_gt) {
|
2015-09-06 00:41:38 +02:00
|
|
|
struct criterion_ordered_set *set = new_ordered_set(compare_gt, NULL);
|
2015-08-21 06:30:20 +02:00
|
|
|
|
|
|
|
insert_ordered_set(set, &(int[1]) { 1 }, sizeof (int));
|
|
|
|
insert_ordered_set(set, &(int[1]) { 8 }, sizeof (int));
|
|
|
|
insert_ordered_set(set, &(int[1]) { 3 }, sizeof (int));
|
|
|
|
|
|
|
|
int *prev = NULL;
|
|
|
|
FOREACH_SET(int *e, set) {
|
|
|
|
if (prev)
|
|
|
|
cr_assert_gt(*prev, *e);
|
|
|
|
prev = e;
|
|
|
|
}
|
2015-09-06 00:41:38 +02:00
|
|
|
|
|
|
|
sfree(set);
|
2015-08-21 06:30:20 +02:00
|
|
|
}
|