void testEvent_getSubTreeEventNumber(CuTest* testCase) { cactusEventTestSetup(); CuAssertTrue(testCase, event_getSubTreeEventNumber(rootEvent) == 3); CuAssertTrue(testCase, event_getSubTreeEventNumber(internalEvent) == 2); CuAssertTrue(testCase, event_getSubTreeEventNumber(leafEvent1) == 0); CuAssertTrue(testCase, event_getSubTreeEventNumber(leafEvent2) == 0); cactusEventTestTeardown(); }
int64_t event_getSubTreeEventNumber(Event *event) { assert(event != NULL); int64_t i, j; Event *childEvent; j = 0.0; for (i = 0; i < event_getChildNumber(event); i++) { childEvent = event_getChild(event, i); j += event_getSubTreeEventNumber(childEvent) + 1; } return j; }
int64_t eventTree_getEventNumber(EventTree *eventTree) { return event_getSubTreeEventNumber(eventTree_getRootEvent(eventTree)) + 1; }