Move test into test/std subdirectory.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@224658 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
		
							
								
								
									
										154
									
								
								test/std/containers/associative/map/map.access/at.pass.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										154
									
								
								test/std/containers/associative/map/map.access/at.pass.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,154 @@ | ||||
| //===----------------------------------------------------------------------===// | ||||
| // | ||||
| //                     The LLVM Compiler Infrastructure | ||||
| // | ||||
| // This file is dual licensed under the MIT and the University of Illinois Open | ||||
| // Source Licenses. See LICENSE.TXT for details. | ||||
| // | ||||
| //===----------------------------------------------------------------------===// | ||||
|  | ||||
| // <map> | ||||
|  | ||||
| // class map | ||||
|  | ||||
| //       mapped_type& at(const key_type& k); | ||||
| // const mapped_type& at(const key_type& k) const; | ||||
|  | ||||
| #include <map> | ||||
| #include <cassert> | ||||
|  | ||||
| #include "min_allocator.h" | ||||
|  | ||||
| int main() | ||||
| { | ||||
|     { | ||||
|         typedef std::pair<const int, double> V; | ||||
|         V ar[] = | ||||
|         { | ||||
|             V(1, 1.5), | ||||
|             V(2, 2.5), | ||||
|             V(3, 3.5), | ||||
|             V(4, 4.5), | ||||
|             V(5, 5.5), | ||||
|             V(7, 7.5), | ||||
|             V(8, 8.5), | ||||
|         }; | ||||
|         std::map<int, double> m(ar, ar+sizeof(ar)/sizeof(ar[0])); | ||||
|         assert(m.size() == 7); | ||||
|         assert(m.at(1) == 1.5); | ||||
|         m.at(1) = -1.5; | ||||
|         assert(m.at(1) == -1.5); | ||||
|         assert(m.at(2) == 2.5); | ||||
|         assert(m.at(3) == 3.5); | ||||
|         assert(m.at(4) == 4.5); | ||||
|         assert(m.at(5) == 5.5); | ||||
|         try | ||||
|         { | ||||
|             m.at(6); | ||||
|             assert(false); | ||||
|         } | ||||
|         catch (std::out_of_range&) | ||||
|         { | ||||
|         } | ||||
|         assert(m.at(7) == 7.5); | ||||
|         assert(m.at(8) == 8.5); | ||||
|         assert(m.size() == 7); | ||||
|     } | ||||
|     { | ||||
|         typedef std::pair<const int, double> V; | ||||
|         V ar[] = | ||||
|         { | ||||
|             V(1, 1.5), | ||||
|             V(2, 2.5), | ||||
|             V(3, 3.5), | ||||
|             V(4, 4.5), | ||||
|             V(5, 5.5), | ||||
|             V(7, 7.5), | ||||
|             V(8, 8.5), | ||||
|         }; | ||||
|         const std::map<int, double> m(ar, ar+sizeof(ar)/sizeof(ar[0])); | ||||
|         assert(m.size() == 7); | ||||
|         assert(m.at(1) == 1.5); | ||||
|         assert(m.at(2) == 2.5); | ||||
|         assert(m.at(3) == 3.5); | ||||
|         assert(m.at(4) == 4.5); | ||||
|         assert(m.at(5) == 5.5); | ||||
|         try | ||||
|         { | ||||
|             m.at(6); | ||||
|             assert(false); | ||||
|         } | ||||
|         catch (std::out_of_range&) | ||||
|         { | ||||
|         } | ||||
|         assert(m.at(7) == 7.5); | ||||
|         assert(m.at(8) == 8.5); | ||||
|         assert(m.size() == 7); | ||||
|     } | ||||
| #if __cplusplus >= 201103L | ||||
|     { | ||||
|         typedef std::pair<const int, double> V; | ||||
|         V ar[] = | ||||
|         { | ||||
|             V(1, 1.5), | ||||
|             V(2, 2.5), | ||||
|             V(3, 3.5), | ||||
|             V(4, 4.5), | ||||
|             V(5, 5.5), | ||||
|             V(7, 7.5), | ||||
|             V(8, 8.5), | ||||
|         }; | ||||
|         std::map<int, double, std::less<int>, min_allocator<V>> m(ar, ar+sizeof(ar)/sizeof(ar[0])); | ||||
|         assert(m.size() == 7); | ||||
|         assert(m.at(1) == 1.5); | ||||
|         m.at(1) = -1.5; | ||||
|         assert(m.at(1) == -1.5); | ||||
|         assert(m.at(2) == 2.5); | ||||
|         assert(m.at(3) == 3.5); | ||||
|         assert(m.at(4) == 4.5); | ||||
|         assert(m.at(5) == 5.5); | ||||
|         try | ||||
|         { | ||||
|             m.at(6); | ||||
|             assert(false); | ||||
|         } | ||||
|         catch (std::out_of_range&) | ||||
|         { | ||||
|         } | ||||
|         assert(m.at(7) == 7.5); | ||||
|         assert(m.at(8) == 8.5); | ||||
|         assert(m.size() == 7); | ||||
|     } | ||||
|     { | ||||
|         typedef std::pair<const int, double> V; | ||||
|         V ar[] = | ||||
|         { | ||||
|             V(1, 1.5), | ||||
|             V(2, 2.5), | ||||
|             V(3, 3.5), | ||||
|             V(4, 4.5), | ||||
|             V(5, 5.5), | ||||
|             V(7, 7.5), | ||||
|             V(8, 8.5), | ||||
|         }; | ||||
|         const std::map<int, double, std::less<int>, min_allocator<V>> m(ar, ar+sizeof(ar)/sizeof(ar[0])); | ||||
|         assert(m.size() == 7); | ||||
|         assert(m.at(1) == 1.5); | ||||
|         assert(m.at(2) == 2.5); | ||||
|         assert(m.at(3) == 3.5); | ||||
|         assert(m.at(4) == 4.5); | ||||
|         assert(m.at(5) == 5.5); | ||||
|         try | ||||
|         { | ||||
|             m.at(6); | ||||
|             assert(false); | ||||
|         } | ||||
|         catch (std::out_of_range&) | ||||
|         { | ||||
|         } | ||||
|         assert(m.at(7) == 7.5); | ||||
|         assert(m.at(8) == 8.5); | ||||
|         assert(m.size() == 7); | ||||
|     } | ||||
| #endif | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Eric Fiselier
					Eric Fiselier