void testMetaSequence_serialisation(CuTest* testCase) { cactusMetaSequenceTestSetup(); int64_t i; Name name = metaSequence_getName(metaSequence); CuAssertTrue(testCase, cactusDisk_getMetaSequence(cactusDisk, name) == metaSequence); void *vA = binaryRepresentation_makeBinaryRepresentation(metaSequence, (void (*)(void *, void (*)(const void *, size_t, size_t)))metaSequence_writeBinaryRepresentation, &i); CuAssertTrue(testCase, i > 0); metaSequence_destruct(metaSequence); CuAssertTrue(testCase, cactusDisk_getMetaSequence(cactusDisk, name) == NULL); void *vA2 = vA; metaSequence = metaSequence_loadFromBinaryRepresentation(&vA2, cactusDisk); CuAssertTrue(testCase, name == metaSequence_getName(metaSequence)); CuAssertStrEquals(testCase, headerString, metaSequence_getHeader(metaSequence)); CuAssertTrue(testCase, cactusDisk_getMetaSequence(cactusDisk, name) == metaSequence); cactusDisk_write(cactusDisk); metaSequence_destruct(metaSequence); CuAssertTrue(testCase, cactusDisk_getMetaSequence(cactusDisk, name) != NULL); metaSequence = cactusDisk_getMetaSequence(cactusDisk, name); nestedTest = 1; testMetaSequence_getName(testCase); testMetaSequence_getStart(testCase); testMetaSequence_getLength(testCase); testMetaSequence_getEventName(testCase); testMetaSequence_getString(testCase); testMetaSequence_getHeader(testCase); testMetaSequence_isTrivialSequence(testCase); nestedTest = 0; cactusMetaSequenceTestTeardown(); }
Sequence *sequence_loadFromBinaryRepresentation(void **binaryString, Flower *flower) { Sequence *sequence; sequence = NULL; if(binaryRepresentation_peekNextElementType(*binaryString) == CODE_SEQUENCE) { binaryRepresentation_popNextElementType(binaryString); sequence = sequence_construct(cactusDisk_getMetaSequence(flower_getCactusDisk(flower), binaryRepresentation_getName(binaryString)), flower); } return sequence; }
void testCactusDisk_getMetaSequence(CuTest* testCase) { cactusDiskTestSetup(); MetaSequence *metaSequence = metaSequence_construct(1, 10, "ACTGACTGAG", "FOO", 10, cactusDisk); MetaSequence *metaSequence2 = metaSequence_construct(2, 10, "CCCCCCCCCC", "BAR", 10, cactusDisk); CuAssertTrue(testCase, cactusDisk_getMetaSequence(cactusDisk, metaSequence_getName(metaSequence)) == metaSequence); CuAssertTrue(testCase, cactusDisk_getMetaSequence(cactusDisk, metaSequence_getName(metaSequence2)) == metaSequence2); //now try closing the disk, then reloading it, to see if we get the same result. Name name1 = metaSequence_getName(metaSequence); Name name2 = metaSequence_getName(metaSequence2); cactusDisk_write(cactusDisk); cactusDisk_destruct(cactusDisk); cactusDisk = cactusDisk_construct(conf, 0); metaSequence = cactusDisk_getMetaSequence(cactusDisk, name1); metaSequence2 = cactusDisk_getMetaSequence(cactusDisk, name2); CuAssertTrue(testCase, metaSequence != NULL); CuAssertTrue(testCase, metaSequence2 != NULL); CuAssertTrue(testCase, metaSequence_getName(metaSequence) == name1); CuAssertTrue(testCase, metaSequence_getName(metaSequence2) == name2); cactusDiskTestTeardown(); }
void testMetaSequence_getName(CuTest* testCase) { cactusMetaSequenceTestSetup(); CuAssertTrue(testCase, metaSequence_getName(metaSequence) != NULL_NAME); CuAssertTrue(testCase, cactusDisk_getMetaSequence(cactusDisk, metaSequence_getName(metaSequence)) == metaSequence); cactusMetaSequenceTestTeardown(); }