void testEvent_serialisation(CuTest* testCase) { cactusEventTestSetup(); int64_t i; void *vA = binaryRepresentation_makeBinaryRepresentation(leafEvent1, (void (*)(void *, void (*)(const void *, size_t, size_t)))event_writeBinaryRepresentation, &i); CuAssertTrue(testCase, i > 0); event_destruct(leafEvent1); void *vA2 = vA; leafEvent1 = event_loadFromBinaryRepresentation(&vA2, eventTree); free(vA); nestedTest = 1; testEvent_getParent(testCase); testEvent_getName(testCase); testEvent_getHeader(testCase); testEvent_getBranchLength(testCase); testEvent_getSubTreeBranchLength(testCase); testEvent_getSubTreeEventNumber(testCase); testEvent_getChildNumber(testCase); //testEvent_getChild(testCase); -- won't work as doesn't preserve order of leaves, which is okay -- here's a replacement. CuAssertTrue(testCase, event_getChild(rootEvent, 0) == internalEvent); CuAssertTrue(testCase, event_getChild(internalEvent, 0) == leafEvent2); CuAssertTrue(testCase, event_getChild(internalEvent, 1) == leafEvent1); testEvent_getEventTree(testCase); testEvent_isAncestor(testCase); testEvent_isDescendant(testCase); testEvent_isSibling(testCase); testEvent_isOutgroup(testCase); nestedTest = 0; cactusEventTestTeardown(); }
void eventTree_destruct(EventTree *eventTree) { Event *event; while((event = eventTree_getFirst(eventTree)) != NULL) { event_destruct(event); } stSortedSet_destruct(eventTree->events); free(eventTree); }