void testEventTree_serialisation(CuTest* testCase) { cactusEventTreeTestSetup(); int64_t i; void *vA = binaryRepresentation_makeBinaryRepresentation(eventTree, (void (*)(void *, void (*)(const void *, size_t, size_t)))eventTree_writeBinaryRepresentation, &i); CuAssertTrue(testCase, i > 0); eventTree_destruct(eventTree); void *vA2 = vA; eventTree = eventTree_loadFromBinaryRepresentation(&vA2, flower); rootEvent = eventTree_getRootEvent(eventTree); internalEvent = event_getChild(rootEvent, 0); leafEvent1 = event_getChild(internalEvent, 0); leafEvent2 = event_getChild(internalEvent, 1); free(vA); nestedTest = 1; testEventTree_copyConstruct(testCase); testEventTree_getRootEvent(testCase); testEventTree_getEvent(testCase); testEventTree_getCommonAncestor(testCase); testEventTree_getFlower(testCase); testEventTree_getEventNumber(testCase); testEventTree_getFirst(testCase); testEventTree_makeNewickString(testCase); testEventTree_iterator(testCase); testEventTree_addSiblingUnaryEvent(testCase); nestedTest = 0; cactusEventTreeTestTeardown(); }
void flower_destruct(Flower *flower, int64_t recursive) { Flower_GroupIterator *iterator; Sequence *sequence; End *end; Block *block; Group *group; Chain *chain; Flower *nestedFlower; if (recursive) { iterator = flower_getGroupIterator(flower); while ((group = flower_getNextGroup(iterator)) != NULL) { nestedFlower = group_getNestedFlower(group); if (nestedFlower != NULL) { flower_destruct(nestedFlower, recursive); } } flower_destructGroupIterator(iterator); } cactusDisk_removeFlower(flower->cactusDisk, flower); flower_destructFaces(flower); stSortedSet_destruct(flower->faces); assert(flower_getEventTree(flower) != NULL); eventTree_destruct(flower_getEventTree(flower)); while ((sequence = flower_getFirstSequence(flower)) != NULL) { sequence_destruct(sequence); } stSortedSet_destruct(flower->sequences); while ((chain = flower_getFirstChain(flower)) != NULL) { chain_destruct(chain); } stSortedSet_destruct(flower->chains); while ((end = flower_getFirstEnd(flower)) != NULL) { end_destruct(end); } stSortedSet_destruct(flower->caps); stSortedSet_destruct(flower->ends); while ((block = flower_getFirstBlock(flower)) != NULL) { block_destruct(block); } stSortedSet_destruct(flower->segments); stSortedSet_destruct(flower->blocks); while ((group = flower_getFirstGroup(flower)) != NULL) { group_destruct(group); } stSortedSet_destruct(flower->groups); free(flower); }
void flower_setEventTree(Flower *flower, EventTree *eventTree) { if (flower_getEventTree(flower) != NULL) { eventTree_destruct(flower_getEventTree(flower)); } flower->eventTree = eventTree; }