Changeset 2296
- Timestamp:
- Jul 8, 2010, 9:39:42 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/segment_test.cc
r2294 r2296 25 25 #include "yat/utility/SegmentSet.h" 26 26 27 using namespace theplu::yat; 28 using namespace utility; 29 void test_count(test::Suite&); 30 void test_insert(test::Suite&); 31 void test_insert_merge(test::Suite&); 32 void test_segment(test::Suite& suite); 33 void test_set_bound(test::Suite&); 34 27 35 int main(int argc, char* argv[]) 28 36 { 29 using namespace theplu::yat::utility; 30 theplu::yat::test::Suite suite(argc, argv); 37 test::Suite suite(argc, argv); 31 38 39 test_count(suite); 40 test_insert(suite); 41 test_insert_merge(suite); 42 test_segment(suite); 43 test_set_bound(suite); 44 45 return suite.return_value(); 46 } 47 48 void test_insert(test::Suite& suite) 49 { 32 50 Segment<double> segment; 33 51 Segment<double> segment2(0,2); … … 48 66 suite.err() << "expected size 1\n"; 49 67 } 68 set.insert(Segment<double>(1,3)); 69 if (set.size()!=1) { 70 suite.add(false); 71 suite.err() << "expected size 1\n"; 72 } 50 73 if (!suite.add(set.find(0)!=set.end())) 51 74 suite.err() << "error: set.find(0): expected not end()\n"; 52 75 } 76 77 void test_count(test::Suite& suite) 78 { 79 SegmentSet<double> set; 80 set.insert(Segment<double>(0,2)); 53 81 // test count 54 82 if (!suite.add(set.count(0)==1)) … … 58 86 if (!suite.add(set.count(2)==0)) 59 87 suite.err() << "error: set.count(2): expected 0\n"; 88 } 60 89 90 void test_insert_merge(test::Suite& suite) 91 { 92 SegmentSet<double> set; 93 set.insert(Segment<double>(0,2)); 61 94 set.insert_merge(Segment<double>(3,5)); 62 95 if (!suite.add(set.size()==2)) … … 74 107 if (!suite.add(set.size()==1)) 75 108 suite.err() << "error: set.size(): " << set.size() << " expected 1\n"; 109 } 76 110 111 void test_set_bound(test::Suite& suite) 112 { 113 SegmentSet<double> set; 114 set.insert(Segment<double>(0,2)); 77 115 set.begin(); 78 116 set.end(); … … 81 119 if (!suite.add(set.upper_bound(Segment<double>(-1,2))==set.end())) 82 120 suite.err() << "error: expected set.upper_bound to return end()\n"; 121 set.clear(); 122 } 83 123 124 void test_segment(test::Suite& suite) 125 { 84 126 Segment<double> segment12(0,2); 85 127 Segment<double> segment13(1,3); … … 103 145 suite.err() << "error: compare_3way: expected 1\n"; 104 146 105 return suite.return_value();106 147 } -
trunk/yat/utility/SegmentSet.h
r2292 r2296 78 78 */ 79 79 iterator begin(void) { return set_.begin(); } 80 81 /** 82 \brief erases all the segments 83 */ 84 void clear(void) { set_.clear(); } 80 85 81 86 /** … … 216 221 SegmentSet<T, Compare>::insert(const value_type& segment) 217 222 { 218 iterator iter = set_.lower_bound(segment); 219 return set_.insert(segment); 223 std::pair<iterator, iterator> p = overlap_range(segment); 224 std::pair<typename SegmentSet<T, Compare>::iterator, bool> result; 225 if (p.first==p.second) { 226 result.first = set_.insert(p.first, segment); 227 result.second = true; 228 return result; 229 } 230 result.first = p.first; 231 result.second = false; 232 return result; 220 233 } 221 234
Note: See TracChangeset
for help on using the changeset viewer.