/** * Test the is First Token methods behavior. * Test the is Last Token methods behavior. */ void TestSegment::testIsFirstOrLastTokenMethod() { Segment* seg = Segment::CreateWithEndTime(0, 20000, NULL); Token* tok1 = Token::CreateWithEndTime(0, 4000, seg); Token* tok2 = Token::CreateWithEndTime(1000, 4500, seg); Token* tok3 = Token::CreateWithEndTime(3000, 5000, seg); Token* tok4 = Token::CreateWithEndTime(5000, 10000, seg); Token* tok5 = Token::CreateWithEndTime(10000, 19000, seg); Token* tok6 = Token::CreateWithEndTime(11000, 20000, seg); Token* tok7 = Token::CreateWithEndTime(10000, 18000, seg); seg->AddFirstToken(tok1); seg->AddFirstToken(tok2); seg->AddFirstToken(tok3); seg->AddLastToken(tok5); seg->AddLastToken(tok6); seg->AddLastToken(tok7); tok1->AddNextToken(tok4); tok2->AddNextToken(tok4); tok3->AddNextToken(tok4); tok4->AddPrecToken(tok1); tok4->AddPrecToken(tok2); tok4->AddPrecToken(tok3); tok5->AddPrecToken(tok4); tok6->AddPrecToken(tok4); tok7->AddPrecToken(tok4); tok4->AddNextToken(tok5); tok4->AddNextToken(tok6); tok4->AddNextToken(tok7); assert(seg->isFirstToken(tok1)); assert(seg->isFirstToken(tok2)); assert(seg->isFirstToken(tok3)); assert(seg->isLastToken(tok5)); assert(seg->isLastToken(tok6)); assert(seg->isLastToken(tok7)); }
/** * Test the output a plan version of the segment method. * TODO: Need to be more tough. */ void TestSegment::testToTopologicalOrderedStruct() { Segment* seg = Segment::CreateWithEndTime(0, 20000, NULL); /* The following graph struct is tested. * ->1-3-4-5-> * / \ * ->2 6-> */ Token* tok1 = Token::CreateWithEndTime(0, 0, seg); Token* tok2 = Token::CreateWithEndTime(0, 0, seg); Token* tok3 = Token::CreateWithEndTime(0, 0, seg); Token* tok4 = Token::CreateWithEndTime(0, 0, seg); Token* tok5 = Token::CreateWithEndTime(0, 0, seg); Token* tok6 = Token::CreateWithEndTime(0, 0, seg); seg->AddFirstToken(tok1); seg->AddFirstToken(tok2); tok1->AddNextToken(tok3); tok2->AddNextToken(tok4); tok3->AddPrecToken(tok1); tok3->AddNextToken(tok4); tok4->AddPrecToken(tok2); tok4->AddPrecToken(tok3); tok4->AddNextToken(tok5); tok4->AddNextToken(tok6); tok5->AddPrecToken(tok4); tok6->AddPrecToken(tok4); seg->AddLastToken(tok5); seg->AddLastToken(tok6); vector<Token*> topo_seg = seg->ToTopologicalOrderedStruct(); // the size is suppose to be +1 (empty token at first) assert(topo_seg.size() == 6); //TODO put some more here }