#include "utilities/ReverseIndexLookup.h" #include "unittest/TestSuite.h" #include static void testBasicOperations(void) { ReverseIndexLookup * lookup = ReverseIndexLookup_create(); TestCase_assertPointerNonNULL(lookup); TestCase_assertPointerNULL(ReverseIndexLookup_get(lookup, 0)); TestCase_assertUIntEqual(ReverseIndexLookup_getCount(lookup, 0), 0); TestCase_assertUIntEqual(ReverseIndexLookup_getValue(lookup, 0, 0), UINT_MAX); ReverseIndexLookup_set(lookup, 0, 1); struct ReverseIndexLookup_entry * entry = ReverseIndexLookup_get(lookup, 0); TestCase_assertPointerNonNULL(entry); TestCase_assertUIntEqual(entry->count, 1); TestCase_assertPointerNonNULL(entry->values); TestCase_assertUIntEqual(entry->values[0], 1); TestCase_assertUIntEqual(ReverseIndexLookup_getCount(lookup, 0), 1); TestCase_assertUIntEqual(ReverseIndexLookup_getValue(lookup, 0, 0), 1); TestCase_assertUIntEqual(ReverseIndexLookup_getValue(lookup, 0, 1), UINT_MAX); ReverseIndexLookup_set(lookup, 0, 2); entry = ReverseIndexLookup_get(lookup, 0); TestCase_assertPointerNonNULL(entry); TestCase_assertUIntEqual(entry->count, 2); TestCase_assertPointerNonNULL(entry->values); TestCase_assertUIntEqual(entry->values[0], 1); TestCase_assertUIntEqual(entry->values[1], 2); TestCase_assertUIntEqual(ReverseIndexLookup_getCount(lookup, 0), 2); TestCase_assertUIntEqual(ReverseIndexLookup_getValue(lookup, 0, 0), 1); TestCase_assertUIntEqual(ReverseIndexLookup_getValue(lookup, 0, 1), 2); TestCase_assertUIntEqual(ReverseIndexLookup_getValue(lookup, 0, 2), UINT_MAX); ReverseIndexLookup_set(lookup, 1, 1); entry = ReverseIndexLookup_get(lookup, 1); TestCase_assertPointerNonNULL(entry); TestCase_assertUIntEqual(entry->count, 1); TestCase_assertPointerNonNULL(entry->values); TestCase_assertUIntEqual(entry->values[0], 1); TestCase_assertUIntEqual(ReverseIndexLookup_getCount(lookup, 1), 1); TestCase_assertUIntEqual(ReverseIndexLookup_getValue(lookup, 1, 0), 1); TestCase_assertUIntEqual(ReverseIndexLookup_getValue(lookup, 1, 1), UINT_MAX); ReverseIndexLookup_unset(lookup, 0, 1); entry = ReverseIndexLookup_get(lookup, 0); TestCase_assertPointerNonNULL(entry); TestCase_assertUIntEqual(entry->count, 1); TestCase_assertPointerNonNULL(entry->values); TestCase_assertUIntEqual(entry->values[0], 2); TestCase_assertUIntEqual(ReverseIndexLookup_getCount(lookup, 0), 1); TestCase_assertUIntEqual(ReverseIndexLookup_getValue(lookup, 0, 0), 2); TestCase_assertUIntEqual(ReverseIndexLookup_getValue(lookup, 0, 1), UINT_MAX); ReverseIndexLookup_empty(lookup); TestCase_assertUIntEqual(ReverseIndexLookup_getCount(lookup, 0), 0); TestCase_assertUIntEqual(ReverseIndexLookup_getCount(lookup, 1), 0); ReverseIndexLookup_dispose(lookup); } TEST_SUITE(ReverseIndexLookupTest, testBasicOperations)