mirror of
				https://github.com/eledio-devices/thirdparty-tinyexpr.git
				synced 2025-10-31 00:32:38 +01:00 
			
		
		
		
	Added basic tests for up to 7-ary functions.
This commit is contained in:
		
							
								
								
									
										65
									
								
								test.c
									
									
									
									
									
								
							
							
						
						
									
										65
									
								
								test.c
									
									
									
									
									
								
							| @@ -328,20 +328,29 @@ void test_functions() { | |||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| double test0() { | double sum0() { | ||||||
|     return 6; |     return 6; | ||||||
| } | } | ||||||
|  | double sum1(double a) { | ||||||
| double test1(double a) { |  | ||||||
|     return a * 2; |     return a * 2; | ||||||
| } | } | ||||||
|  | double sum2(double a, double b) { | ||||||
| double test2(double a, double b) { |  | ||||||
|     return a + b; |     return a + b; | ||||||
| } | } | ||||||
|  | double sum3(double a, double b, double c) { | ||||||
| double test3(double a, double b, double c) { |     return a + b + c; | ||||||
|     return (a + b) / c; | } | ||||||
|  | double sum4(double a, double b, double c, double d) { | ||||||
|  |     return a + b + c + d; | ||||||
|  | } | ||||||
|  | double sum5(double a, double b, double c, double d, double e) { | ||||||
|  |     return a + b + c + d + e; | ||||||
|  | } | ||||||
|  | double sum6(double a, double b, double c, double d, double e, double f) { | ||||||
|  |     return a + b + c + d + e + f; | ||||||
|  | } | ||||||
|  | double sum7(double a, double b, double c, double d, double e, double f, double g) { | ||||||
|  |     return a + b + c + d + e + f + g; | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -351,10 +360,14 @@ void test_dynamic() { | |||||||
|     te_variable lookup[] = { |     te_variable lookup[] = { | ||||||
|         {"x", &x}, |         {"x", &x}, | ||||||
|         {"f", &f}, |         {"f", &f}, | ||||||
|         {"test0", test0, TE_FUNCTION0}, |         {"sum0", sum0, TE_FUNCTION0}, | ||||||
|         {"test1", test1, TE_FUNCTION1}, |         {"sum1", sum1, TE_FUNCTION1}, | ||||||
|         {"test2", test2, TE_FUNCTION2}, |         {"sum2", sum2, TE_FUNCTION2}, | ||||||
|         {"test3", test3, TE_FUNCTION3}, |         {"sum3", sum3, TE_FUNCTION3}, | ||||||
|  |         {"sum4", sum4, TE_FUNCTION4}, | ||||||
|  |         {"sum5", sum5, TE_FUNCTION5}, | ||||||
|  |         {"sum6", sum6, TE_FUNCTION6}, | ||||||
|  |         {"sum7", sum7, TE_FUNCTION7}, | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     test_case cases[] = { |     test_case cases[] = { | ||||||
| @@ -363,17 +376,23 @@ void test_dynamic() { | |||||||
|         {"x+x", 4}, |         {"x+x", 4}, | ||||||
|         {"x+f", 7}, |         {"x+f", 7}, | ||||||
|         {"f+f", 10}, |         {"f+f", 10}, | ||||||
|         {"f+test0", 11}, |         {"f+sum0", 11}, | ||||||
|         {"test0+test0", 12}, |         {"sum0+sum0", 12}, | ||||||
|         {"test0()+test0", 12}, |         {"sum0()+sum0", 12}, | ||||||
|         {"test0+test0()", 12}, |         {"sum0+sum0()", 12}, | ||||||
|         {"test0()+(0)+test0()", 12}, |         {"sum0()+(0)+sum0()", 12}, | ||||||
|         {"test1 test0", 12}, |         {"sum1 sum0", 12}, | ||||||
|         {"test1(test0)", 12}, |         {"sum1(sum0)", 12}, | ||||||
|         {"test1 f", 10}, |         {"sum1 f", 10}, | ||||||
|         {"test1 x", 4}, |         {"sum1 x", 4}, | ||||||
|         {"test2 (test0, x)", 8}, |         {"sum2 (sum0, x)", 8}, | ||||||
|         {"test3 (test0, x, 2)", 4}, |         {"sum3 (sum0, x, 2)", 10}, | ||||||
|  |         {"sum2(2,3)", 5}, | ||||||
|  |         {"sum3(2,3,4)", 9}, | ||||||
|  |         {"sum4(2,3,4,5)", 14}, | ||||||
|  |         {"sum5(2,3,4,5,6)", 20}, | ||||||
|  |         {"sum6(2,3,4,5,6,7)", 27}, | ||||||
|  |         {"sum7(2,3,4,5,6,7,8)", 35}, | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     x = 2; |     x = 2; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user