dqn: Add unit tests for binary split
This commit is contained in:
		
							parent
							
								
									3cac240aa3
								
							
						
					
					
						commit
						1d186b49f1
					
				
							
								
								
									
										5
									
								
								dqn.h
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								dqn.h
									
									
									
									
									
								
							| @ -4016,9 +4016,8 @@ DQN_API char const *Dqn_CString8_BinarySplit(char const *string, Dqn_isize strin | |||||||
|         *lhs_size = 0; |         *lhs_size = 0; | ||||||
|     if (rhs_size) |     if (rhs_size) | ||||||
|         *rhs_size = 0; |         *rhs_size = 0; | ||||||
|     if (rhs && *rhs) { |     if (rhs) | ||||||
|         *rhs = nullptr; |         *rhs = nullptr; | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
|     if (!Dqn_CString8_Validate_(string, &string_size)) { |     if (!Dqn_CString8_Validate_(string, &string_size)) { | ||||||
|         return result; |         return result; | ||||||
| @ -4035,7 +4034,7 @@ DQN_API char const *Dqn_CString8_BinarySplit(char const *string, Dqn_isize strin | |||||||
|         *lhs_size = offset; |         *lhs_size = offset; | ||||||
| 
 | 
 | ||||||
|     // NOTE: RHS, the string after the delimiter
 |     // NOTE: RHS, the string after the delimiter
 | ||||||
|     if (rhs && *rhs) { |     if (rhs) { | ||||||
|         *rhs      = DQN_CAST(char *)(string + offset + 1); |         *rhs      = DQN_CAST(char *)(string + offset + 1); | ||||||
|         *rhs_size = (string + string_size) - (*rhs); |         *rhs_size = (string + string_size) - (*rhs); | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -1003,7 +1003,7 @@ Dqn_Tester Dqn_Test_CString8() | |||||||
| { | { | ||||||
|     Dqn_Tester test = {}; |     Dqn_Tester test = {}; | ||||||
|     DQN_TESTER_BEGIN_GROUP("Dqn_CString8"); |     DQN_TESTER_BEGIN_GROUP("Dqn_CString8"); | ||||||
|     // ---------------------------------------------------------------------------------------------
 | 
 | ||||||
|     // NOTE: Dqn_CString8_ToI64
 |     // NOTE: Dqn_CString8_ToI64
 | ||||||
|     // ---------------------------------------------------------------------------------------------
 |     // ---------------------------------------------------------------------------------------------
 | ||||||
|     { |     { | ||||||
| @ -1069,7 +1069,6 @@ Dqn_Tester Dqn_Test_CString8() | |||||||
|         Dqn_Tester_End(&test); |         Dqn_Tester_End(&test); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // ---------------------------------------------------------------------------------------------
 |  | ||||||
|     // NOTE: Dqn_CString8_ToU64
 |     // NOTE: Dqn_CString8_ToU64
 | ||||||
|     // ---------------------------------------------------------------------------------------------
 |     // ---------------------------------------------------------------------------------------------
 | ||||||
|     { |     { | ||||||
| @ -1135,7 +1134,6 @@ Dqn_Tester Dqn_Test_CString8() | |||||||
|         Dqn_Tester_End(&test); |         Dqn_Tester_End(&test); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // ---------------------------------------------------------------------------------------------
 |  | ||||||
|     // NOTE: Dqn_CString8_Find
 |     // NOTE: Dqn_CString8_Find
 | ||||||
|     // ---------------------------------------------------------------------------------------------
 |     // ---------------------------------------------------------------------------------------------
 | ||||||
|     { |     { | ||||||
| @ -1293,10 +1291,7 @@ Dqn_Tester Dqn_Test_String8() | |||||||
|     { |     { | ||||||
|         Dqn_Tester_Begin(&test, "Trim whitespace around string"); |         Dqn_Tester_Begin(&test, "Trim whitespace around string"); | ||||||
|         Dqn_String8 string = Dqn_String8_TrimWhitespaceAround(DQN_STRING8(" AB ")); |         Dqn_String8 string = Dqn_String8_TrimWhitespaceAround(DQN_STRING8(" AB ")); | ||||||
|         DQN_TESTER_ASSERTF(&test, string.size == 2, "size: %I64d", string.size); |         DQN_TESTER_ASSERTF(&test, Dqn_String8_Eq(string, DQN_STRING8("AB")), "[string=%.*s]", DQN_STRING_FMT(string)); | ||||||
|         DQN_TESTER_ASSERTF(&test, string.data[0] == 'A', "string[0]: %c", string.data[0]); |  | ||||||
|         DQN_TESTER_ASSERTF(&test, string.data[1] == 'B', "string[1]: %c", string.data[1]); |  | ||||||
|         DQN_TESTER_ASSERTF(&test, string.data[2] == ' ', "string[1]: %c", string.data[1]); |  | ||||||
|         Dqn_Tester_End(&test); |         Dqn_Tester_End(&test); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -1343,8 +1338,6 @@ Dqn_Tester Dqn_Test_String8() | |||||||
|         Dqn_Tester_End(&test); |         Dqn_Tester_End(&test); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|     // ---------------------------------------------------------------------------------------------
 |  | ||||||
|     // NOTE: Dqn_String8_IsAllDigits
 |     // NOTE: Dqn_String8_IsAllDigits
 | ||||||
|     // ---------------------------------------------------------------------------------------------
 |     // ---------------------------------------------------------------------------------------------
 | ||||||
|     { |     { | ||||||
| @ -1389,6 +1382,51 @@ Dqn_Tester Dqn_Test_String8() | |||||||
|         DQN_TESTER_ASSERT(&test, DQN_CAST(bool)result == false); |         DQN_TESTER_ASSERT(&test, DQN_CAST(bool)result == false); | ||||||
|         Dqn_Tester_End(&test); |         Dqn_Tester_End(&test); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     // NOTE: Dqn_String8_BinarySplit
 | ||||||
|  |     // ---------------------------------------------------------------------------------------------
 | ||||||
|  |     { | ||||||
|  |         char const *TEST_FMT = "Dqn_String8_BinarySplit: with '%.*s' with '%c'"; | ||||||
|  |         { | ||||||
|  |             Dqn_String8 input = DQN_STRING8("abcdef"); | ||||||
|  |             char delimiter    = '/'; | ||||||
|  |             Dqn_Tester_Begin(&test, TEST_FMT, DQN_STRING_FMT(input), delimiter); | ||||||
|  | 
 | ||||||
|  |             Dqn_String8 rhs = {}; | ||||||
|  |             Dqn_String8 lhs = Dqn_String8_BinarySplit(input, delimiter, &rhs); | ||||||
|  | 
 | ||||||
|  |             DQN_TESTER_ASSERTF(&test, Dqn_String8_Eq(lhs, DQN_STRING8("abcdef")), "[lhs=%.*s]", DQN_STRING_FMT(lhs)); | ||||||
|  |             DQN_TESTER_ASSERTF(&test, Dqn_String8_Eq(rhs, DQN_STRING8("")), "[rhs=%.*s]", DQN_STRING_FMT(rhs)); | ||||||
|  |             Dqn_Tester_End(&test); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         { | ||||||
|  |             Dqn_String8 input = DQN_STRING8("abc/def"); | ||||||
|  |             char delimiter    = '/'; | ||||||
|  |             Dqn_Tester_Begin(&test, TEST_FMT, DQN_STRING_FMT(input), delimiter); | ||||||
|  | 
 | ||||||
|  |             Dqn_String8 rhs = {}; | ||||||
|  |             Dqn_String8 lhs = Dqn_String8_BinarySplit(input, delimiter, &rhs); | ||||||
|  | 
 | ||||||
|  |             DQN_TESTER_ASSERTF(&test, Dqn_String8_Eq(lhs, DQN_STRING8("abc")), "[lhs=%.*s]", DQN_STRING_FMT(lhs)); | ||||||
|  |             DQN_TESTER_ASSERTF(&test, Dqn_String8_Eq(rhs, DQN_STRING8("def")), "[rhs=%.*s]", DQN_STRING_FMT(rhs)); | ||||||
|  |             Dqn_Tester_End(&test); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         { | ||||||
|  |             Dqn_String8 input = DQN_STRING8("/abcdef"); | ||||||
|  |             char delimiter    = '/'; | ||||||
|  |             Dqn_Tester_Begin(&test, TEST_FMT, DQN_STRING_FMT(input), delimiter); | ||||||
|  | 
 | ||||||
|  |             Dqn_String8 rhs = {}; | ||||||
|  |             Dqn_String8 lhs = Dqn_String8_BinarySplit(input, delimiter, &rhs); | ||||||
|  | 
 | ||||||
|  |             DQN_TESTER_ASSERTF(&test, Dqn_String8_Eq(lhs, DQN_STRING8("")), "[lhs=%.*s]", DQN_STRING_FMT(lhs)); | ||||||
|  |             DQN_TESTER_ASSERTF(&test, Dqn_String8_Eq(rhs, DQN_STRING8("abcdef")), "[rhs=%.*s]", DQN_STRING_FMT(rhs)); | ||||||
|  |             Dqn_Tester_End(&test); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     DQN_TESTER_END_GROUP(&test); |     DQN_TESTER_END_GROUP(&test); | ||||||
|     return test; |     return test; | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user