libcxx initial import
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@103490 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
		
							
								
								
									
										122
									
								
								test/containers/associative/map/map.ops/lower_bound.pass.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								test/containers/associative/map/map.ops/lower_bound.pass.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,122 @@ | ||||
| //===----------------------------------------------------------------------===// | ||||
| // | ||||
| // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>The LLVM Compiler Infrastructure | ||||
| // | ||||
| // This file is distributed under the University of Illinois Open Source | ||||
| // License. See LICENSE.TXT for details. | ||||
| // | ||||
| //===----------------------------------------------------------------------===// | ||||
|  | ||||
| // <map> | ||||
|  | ||||
| // class map | ||||
|  | ||||
| //       iterator lower_bound(const key_type& k); | ||||
| // const_iterator lower_bound(const key_type& k) const; | ||||
|  | ||||
| #include <map> | ||||
| #include <cassert> | ||||
|  | ||||
| int main() | ||||
| { | ||||
|     typedef std::pair<const int, double> V; | ||||
|     typedef std::map<int, double> M; | ||||
|     { | ||||
|         typedef M::iterator R; | ||||
|         V ar[] = | ||||
|         { | ||||
|             V(5, 5), | ||||
|             V(7, 6), | ||||
|             V(9, 7), | ||||
|             V(11, 8), | ||||
|             V(13, 9), | ||||
|             V(15, 10), | ||||
|             V(17, 11), | ||||
|             V(19, 12) | ||||
|         }; | ||||
|         M m(ar, ar+sizeof(ar)/sizeof(ar[0])); | ||||
|         R r = m.lower_bound(5); | ||||
|         assert(r == m.begin()); | ||||
|         r = m.lower_bound(7); | ||||
|         assert(r == next(m.begin())); | ||||
|         r = m.lower_bound(9); | ||||
|         assert(r == next(m.begin(), 2)); | ||||
|         r = m.lower_bound(11); | ||||
|         assert(r == next(m.begin(), 3)); | ||||
|         r = m.lower_bound(13); | ||||
|         assert(r == next(m.begin(), 4)); | ||||
|         r = m.lower_bound(15); | ||||
|         assert(r == next(m.begin(), 5)); | ||||
|         r = m.lower_bound(17); | ||||
|         assert(r == next(m.begin(), 6)); | ||||
|         r = m.lower_bound(19); | ||||
|         assert(r == next(m.begin(), 7)); | ||||
|         r = m.lower_bound(4); | ||||
|         assert(r == next(m.begin(), 0)); | ||||
|         r = m.lower_bound(6); | ||||
|         assert(r == next(m.begin(), 1)); | ||||
|         r = m.lower_bound(8); | ||||
|         assert(r == next(m.begin(), 2)); | ||||
|         r = m.lower_bound(10); | ||||
|         assert(r == next(m.begin(), 3)); | ||||
|         r = m.lower_bound(12); | ||||
|         assert(r == next(m.begin(), 4)); | ||||
|         r = m.lower_bound(14); | ||||
|         assert(r == next(m.begin(), 5)); | ||||
|         r = m.lower_bound(16); | ||||
|         assert(r == next(m.begin(), 6)); | ||||
|         r = m.lower_bound(18); | ||||
|         assert(r == next(m.begin(), 7)); | ||||
|         r = m.lower_bound(20); | ||||
|         assert(r == next(m.begin(), 8)); | ||||
|     } | ||||
|     { | ||||
|         typedef M::const_iterator R; | ||||
|         V ar[] = | ||||
|         { | ||||
|             V(5, 5), | ||||
|             V(7, 6), | ||||
|             V(9, 7), | ||||
|             V(11, 8), | ||||
|             V(13, 9), | ||||
|             V(15, 10), | ||||
|             V(17, 11), | ||||
|             V(19, 12) | ||||
|         }; | ||||
|         const M m(ar, ar+sizeof(ar)/sizeof(ar[0])); | ||||
|         R r = m.lower_bound(5); | ||||
|         assert(r == m.begin()); | ||||
|         r = m.lower_bound(7); | ||||
|         assert(r == next(m.begin())); | ||||
|         r = m.lower_bound(9); | ||||
|         assert(r == next(m.begin(), 2)); | ||||
|         r = m.lower_bound(11); | ||||
|         assert(r == next(m.begin(), 3)); | ||||
|         r = m.lower_bound(13); | ||||
|         assert(r == next(m.begin(), 4)); | ||||
|         r = m.lower_bound(15); | ||||
|         assert(r == next(m.begin(), 5)); | ||||
|         r = m.lower_bound(17); | ||||
|         assert(r == next(m.begin(), 6)); | ||||
|         r = m.lower_bound(19); | ||||
|         assert(r == next(m.begin(), 7)); | ||||
|         r = m.lower_bound(4); | ||||
|         assert(r == next(m.begin(), 0)); | ||||
|         r = m.lower_bound(6); | ||||
|         assert(r == next(m.begin(), 1)); | ||||
|         r = m.lower_bound(8); | ||||
|         assert(r == next(m.begin(), 2)); | ||||
|         r = m.lower_bound(10); | ||||
|         assert(r == next(m.begin(), 3)); | ||||
|         r = m.lower_bound(12); | ||||
|         assert(r == next(m.begin(), 4)); | ||||
|         r = m.lower_bound(14); | ||||
|         assert(r == next(m.begin(), 5)); | ||||
|         r = m.lower_bound(16); | ||||
|         assert(r == next(m.begin(), 6)); | ||||
|         r = m.lower_bound(18); | ||||
|         assert(r == next(m.begin(), 7)); | ||||
|         r = m.lower_bound(20); | ||||
|         assert(r == next(m.begin(), 8)); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Howard Hinnant
					Howard Hinnant