コード例 #1
0
void testEnd_setGroup(CuTest* testCase) {
    cactusEndTestSetup();
    Flower *flower2 = flower_construct(cactusDisk);
    Group *group2 = group_construct2(flower2);
    End *end2 = end_construct(1, flower2);
    End *end3 = end_construct(1, flower2);
    CuAssertTrue(testCase, group_getEndNumber(group2) == 0);
    CuAssertTrue(testCase, end_getGroup(end2) == NULL);
    CuAssertTrue(testCase, end_getGroup(end3) == NULL);
    end_setGroup(end2, group2);
    CuAssertTrue(testCase, group_getEndNumber(group2) == 1);
    CuAssertTrue(testCase, end_getGroup(end2) == group2);
    CuAssertTrue(testCase, group_getEnd(group2, end_getName(end2)) == end2);
    CuAssertTrue(testCase, end_getGroup(end3) == NULL);
    end_setGroup(end3, group2);
    CuAssertTrue(testCase, group_getEndNumber(group2) == 2);
    CuAssertTrue(testCase, end_getGroup(end2) == group2);
    CuAssertTrue(testCase, group_getEnd(group2, end_getName(end2)) == end2);
    CuAssertTrue(testCase, end_getGroup(end3) == group2);
    CuAssertTrue(testCase, group_getEnd(group2, end_getName(end3)) == end3);
    end_setGroup(end3, NULL);
    end_setGroup(end2, group2);
    CuAssertTrue(testCase, group_getEndNumber(group2) == 1);
    CuAssertTrue(testCase, end_getGroup(end2) == group2);
    CuAssertTrue(testCase, group_getEnd(group2, end_getName(end2)) == end2);
    CuAssertTrue(testCase, end_getGroup(end3) == NULL);
    cactusEndTestTeardown();
}
コード例 #2
0
void testFlower_getEndNumber(CuTest *testCase) {
    /*
     * Tests the different end number functions.
     */
    cactusFlowerTestSetup();
    CuAssertTrue(testCase, flower_getEndNumber(flower) == 0);
    CuAssertTrue(testCase, flower_getBlockEndNumber(flower) == 0);
    CuAssertTrue(testCase, flower_getStubEndNumber(flower) == 0);
    CuAssertTrue(testCase, flower_getFreeStubEndNumber(flower) == 0);
    CuAssertTrue(testCase, flower_getAttachedStubEndNumber(flower) == 0);
    int64_t blockNumber = 10;
    int64_t freeStubEndNumber = 5;
    int64_t attachedStubEndNumber = 3;
    int64_t i;
    for (i = 0; i < blockNumber; i++) {
        block_construct(1, flower);
    }
    for (i = 0; i < freeStubEndNumber; i++) {
        end_construct(0, flower);
    }
    for (i = 0; i < attachedStubEndNumber; i++) {
        end_construct(1, flower);
    }

    CuAssertTrue(testCase, flower_getEndNumber(flower) == blockNumber*2 + freeStubEndNumber + attachedStubEndNumber);
    CuAssertTrue(testCase, flower_getBlockEndNumber(flower) == blockNumber*2);
    CuAssertTrue(testCase, flower_getStubEndNumber(flower) == freeStubEndNumber + attachedStubEndNumber);
    CuAssertTrue(testCase, flower_getFreeStubEndNumber(flower) == freeStubEndNumber);
    CuAssertTrue(testCase, flower_getAttachedStubEndNumber(flower) == attachedStubEndNumber);
    cactusFlowerTestTeardown();
}
コード例 #3
0
static void cactusGroupTestSetup() {
    cactusGroupTestTeardown();
    cactusDisk = testCommon_getTemporaryCactusDisk();
    flower = flower_construct(cactusDisk);
    nestedFlower = flower_construct(cactusDisk);
    end1 = end_construct2(0, 0, flower);
    end2 = end_construct(0, flower);
    end3 = end_construct(0, flower);
    nestedEnd1 = end_copyConstruct(end1, nestedFlower);
    nestedEnd2 = end_copyConstruct(end2, nestedFlower);
    group = group_construct(flower, nestedFlower);
    group2 = group_construct2(flower);
    end4 = end_construct(0, flower);
}
コード例 #4
0
ファイル: cactusCapTest.c プロジェクト: benedictpaten/cactus
void testCap_getTopCap(CuTest* testCase) {
    cactusCapTestSetup();
    End *end1 = end_construct(0, flower);
    End *end2 = end_construct(0, flower);
    End *end3 = end_construct(0, flower);
    Event *intermediateEvent = event_construct4(NULL, 0.0, rootEvent, leafEvent, eventTree);

    Cap *cap1T = cap_construct(end1, rootEvent);
    Cap *cap1I = cap_construct(end1, intermediateEvent);
    Cap *cap1L1 = cap_construct(end1, leafEvent);
    Cap *cap1L2 = cap_construct(end1, leafEvent);
    cap_makeParentAndChild(cap1I, cap1L1);
    cap_makeParentAndChild(cap1I, cap1L2);
    cap_makeParentAndChild(cap1T, cap1I);
    end_setRootInstance(end1, cap1T);
    assert(end_getRootInstance(end1) == cap1T);

    CuAssertTrue(testCase, cap_getTopCap(cap1L1) == NULL);
    CuAssertTrue(testCase, cap_getTopCap(cap_getReverse(cap1L1)) == NULL);
    CuAssertTrue(testCase, cap_getTopCap(cap1L2) == NULL);
    CuAssertTrue(testCase, cap_getTopCap(cap1I) == NULL);

    Cap *cap2T = cap_construct(end2, rootEvent);
    Cap *cap2L = cap_construct(end2, leafEvent);
    cap_makeParentAndChild(cap2T, cap2L);
    end_setRootInstance(end2, cap2T);
    cap_makeAdjacent(cap1L1, cap2L);

    CuAssertTrue(testCase, cap_getTopCap(cap1L1) == cap1T);
    CuAssertTrue(testCase, cap_getTopCap(cap_getReverse(cap1L1)) == cap_getReverse(cap1T));
    CuAssertTrue(testCase, cap_getTopCap(cap1I) == NULL);

    Cap *cap3T = cap_construct(end3, rootEvent);
    Cap *cap3I = cap_construct(end3, intermediateEvent);
    cap_makeParentAndChild(cap3T, cap3I);
    end_setRootInstance(end3, cap3T);
    cap_makeAdjacent(cap1I, cap3I);
    cap_makeAdjacent(cap1T, cap3T);

    CuAssertTrue(testCase, cap_getTopCap(cap1L1) == cap1I);
    CuAssertTrue(testCase, cap_getTopCap(cap_getReverse(cap1L1)) == cap_getReverse(cap1I));
    CuAssertTrue(testCase, cap_getTopCap(cap1I) == cap1T);
    CuAssertTrue(testCase, cap_getTopCap(cap_getReverse(cap1I)) == cap_getReverse(cap1T));

    CuAssertTrue(testCase, cap_getTopCap(cap1T) == NULL);

    cactusCapTestTeardown();
}
コード例 #5
0
void testEnd_getInstanceNumber(CuTest* testCase) {
    cactusEndTestSetup();
    End *end2 = end_construct(0, flower);
    CuAssertTrue(testCase, end_getInstanceNumber(end2) == 0);
    CuAssertTrue(testCase, end_getInstanceNumber(end) == 4);
    cactusEndTestTeardown();
}
コード例 #6
0
ファイル: cactusCapTest.c プロジェクト: benedictpaten/cactus
void testCap_getBottomAndTopFaceEnd(CuTest* testCase) {
    cactusCapTestSetup();

    End *end1 = end_construct(0, flower);
    Cap *cap1T = cap_construct(end1, rootEvent);
    Cap *cap1L = cap_construct(end1, leafEvent);
    cap_makeParentAndChild(cap1T, cap1L);
    end_setRootInstance(end1, cap1T);

    End *end2 = end_construct(0, flower);
    Cap *cap2T = cap_construct(end2, rootEvent);
    Cap *cap2L = cap_construct(end2, leafEvent);
    cap_makeParentAndChild(cap2T, cap2L);
    end_setRootInstance(end2, cap2T);

    CuAssertTrue(testCase, cap_getBottomFaceEnd(cap1T) == NULL);
    CuAssertTrue(testCase, cap_getBottomFaceEnd(cap1L) == NULL);
    CuAssertTrue(testCase, cap_getTopFaceEnd(cap1T) == NULL);
    CuAssertTrue(testCase, cap_getTopFaceEnd(cap1L) == NULL);

    cap_makeAdjacent(cap1L, cap2L);
    cap_makeAdjacent(cap1T, cap2T);

    //Now make the face
    Face *face = face_construct(flower);
    face_allocateSpace(face, 2);
    face_setTopNode(face, 0, cap1T);
    face_setTopNode(face, 1, cap2T);
    face_setBottomNodeNumber(face, 0, 1);
    face_setBottomNodeNumber(face, 1, 1);
    face_addBottomNode(face, 0, cap1L);
    face_addBottomNode(face, 1, cap2L);

    CuAssertTrue(testCase, cap_getTopFaceEnd(cap1L) == NULL);
    CuAssertTrue(testCase, cap_getTopFaceEnd(cap2L) == NULL);
    FaceEnd *faceEnd1 = cap_getTopFaceEnd(cap1T);
    FaceEnd *faceEnd2 = cap_getTopFaceEnd(cap2T);
    CuAssertTrue(testCase, faceEnd_getTopNode(faceEnd1) == cap1T);
    CuAssertTrue(testCase, faceEnd_getTopNode(faceEnd2) == cap2T);

    CuAssertTrue(testCase, cap_getBottomFaceEnd(cap1T) == NULL);
    CuAssertTrue(testCase, cap_getBottomFaceEnd(cap2T) == NULL);
    CuAssertTrue(testCase, cap_getBottomFaceEnd(cap1L) == faceEnd1);
    CuAssertTrue(testCase, cap_getBottomFaceEnd(cap2L) == faceEnd2);

    cactusCapTestTeardown();
}
コード例 #7
0
void testEnd_isAttachedOrFree(CuTest* testCase) {
    cactusEndTestSetup();
    End *end2 = end_construct(1, flower);
    End *end3 = end_construct(0, flower);
    Block *block = block_construct(2, flower);
    End *end4 = block_get5End(block);
    End *end5 = block_get3End(block);
    CuAssertTrue(testCase, end_isAttached(end2));
    CuAssertTrue(testCase, !end_isAttached(end3));
    CuAssertTrue(testCase, !end_isFree(end2));
    CuAssertTrue(testCase, end_isFree(end3));

    CuAssertTrue(testCase, !end_isAttached(end4));
    CuAssertTrue(testCase, !end_isAttached(end5));
    CuAssertTrue(testCase, end_isFree(end4));
    CuAssertTrue(testCase, end_isFree(end5));
    cactusEndTestTeardown();
}
コード例 #8
0
void testEnd_getSetRootInstance(CuTest* testCase) {
    cactusEndTestSetup();
    CuAssertTrue(testCase, end_getRootInstance(end) == cap_getReverse(rootCap));
    CuAssertTrue(testCase, end_getRootInstance(end_getReverse(end)) == rootCap);

    End *end2 = end_construct(0, flower);
    CuAssertTrue(testCase, end_getRootInstance(end2) == NULL);
    CuAssertTrue(testCase, end_getRootInstance(end_getReverse(end2)) == NULL);
    cactusEndTestTeardown();
}
コード例 #9
0
void testFlower_isTerminal(CuTest *testCase) {
    cactusFlowerTestSetup();
    CuAssertTrue(testCase, flower_isTerminal(flower));
    group_construct2(flower);
    CuAssertTrue(testCase, flower_isTerminal(flower));
    end_construct(0, flower);
    CuAssertTrue(testCase, flower_isTerminal(flower));
    block_construct(1, flower);
    CuAssertTrue(testCase, !flower_isTerminal(flower));
    cactusFlowerTestTeardown();
}
コード例 #10
0
void testGroup_getAttachedStubAndBlockEndNumber(CuTest* testCase) {
    cactusGroupTestSetup();
    CuAssertTrue(testCase, group_getAttachedStubEndNumber(group) == 0);
    CuAssertTrue(testCase, group_getBlockEndNumber(group) == 0);
    CuAssertIntEquals(testCase, 2, group_getStubEndNumber(group));
    CuAssertIntEquals(testCase, 2, group_getFreeStubEndNumber(group));
    end_setGroup(end_construct(1, flower), group);
    end_setGroup(end_construct(0, flower), group);
    end_setGroup(end_construct(1, flower), group);
    CuAssertTrue(testCase, group_getAttachedStubEndNumber(group) == 2);
    CuAssertTrue(testCase, group_getBlockEndNumber(group) == 0);
    CuAssertTrue(testCase, group_getStubEndNumber(group) == 5);
    CuAssertTrue(testCase, group_getFreeStubEndNumber(group) == 3);
    Block *block = block_construct(1, flower);
    end_setGroup(block_get5End(block), group);
    end_setGroup(block_get3End(block), group);
    CuAssertTrue(testCase, group_getAttachedStubEndNumber(group) == 2);
    CuAssertTrue(testCase, group_getBlockEndNumber(group) == 2);
    CuAssertTrue(testCase, group_getStubEndNumber(group) == 5);
    CuAssertTrue(testCase, group_getFreeStubEndNumber(group) == 3);
    cactusGroupTestTeardown();
}
コード例 #11
0
static void endsSetup() {
    end = end_construct(1, flower);
    end2 = end_construct(1, flower);
}