test (non)equality for alt_string implementation
This commit is contained in:
		
							parent
							
								
									e830bc502f
								
							
						
					
					
						commit
						4feb8211ca
					
				
					 1 changed files with 43 additions and 2 deletions
				
			
		|  | @ -60,17 +60,36 @@ class alt_string | |||
|     } | ||||
| 
 | ||||
|     template <typename op_type> | ||||
|     bool operator==(op_type&& op) const | ||||
|     typename std::enable_if< // disable for alt_string
 | ||||
|                 !std::is_same<  alt_string, | ||||
|                                 typename std::remove_reference<op_type>::type | ||||
|                              >::value, | ||||
|                 bool>::type | ||||
|     operator==(op_type&& op) const | ||||
|     { | ||||
|         return str_impl == op; | ||||
|     } | ||||
| 
 | ||||
|     bool operator==(const alt_string& op) const | ||||
|     { | ||||
|         return str_impl == op.str_impl; | ||||
|     } | ||||
| 
 | ||||
|     template <typename op_type> | ||||
|     bool operator!=(op_type&& op) const | ||||
|     typename std::enable_if< // disable for alt_string
 | ||||
|                 !std::is_same<  alt_string, | ||||
|                                 typename std::remove_reference<op_type>::type | ||||
|                              >::value, | ||||
|                 bool>::type | ||||
|     operator!=(op_type&& op) const | ||||
|     { | ||||
|         return str_impl != op; | ||||
|     } | ||||
| 
 | ||||
|     bool operator!=(const alt_string& op) const { | ||||
|         return str_impl != op.str_impl; | ||||
|     } | ||||
| 
 | ||||
|     std::size_t size() const noexcept | ||||
|     { | ||||
|         return str_impl.size(); | ||||
|  | @ -210,4 +229,26 @@ TEST_CASE("alternative string type") | |||
|         alt_string dump = doc.dump(); | ||||
|         CHECK(dump == R"({"foo":"bar"})"); | ||||
|     } | ||||
| 
 | ||||
|     SECTION("equality") | ||||
|     { | ||||
|         alt_json doc; | ||||
|         doc["Who are you?"] = "I'm Batman"; | ||||
| 
 | ||||
|         CHECK("I'm Batman" == doc["Who are you?"]); | ||||
|         CHECK(doc["Who are you?"]  == "I'm Batman"); | ||||
| 
 | ||||
|         CHECK("I'm Bruce Wayne" != doc["Who are you?"]); | ||||
|         CHECK(doc["Who are you?"]  != "I'm Bruce Wayne"); | ||||
| 
 | ||||
|         { | ||||
|             const alt_json& const_doc = doc; | ||||
| 
 | ||||
|             CHECK("I'm Batman" == const_doc["Who are you?"]); | ||||
|             CHECK(const_doc["Who are you?"] == "I'm Batman"); | ||||
| 
 | ||||
|             CHECK("I'm Bruce Wayne" != const_doc["Who are you?"]); | ||||
|             CHECK(const_doc["Who are you?"] != "I'm Bruce Wayne"); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue