82 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			SourcePawn
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			SourcePawn
		
	
	
	
	
	
| public OnPluginStart()
 | |
| {
 | |
|   RegServerCmd("test_floats", TestFloats)
 | |
| }
 | |
| 
 | |
| check(bool:got, bool:expect, const String:message[]="")
 | |
| {
 | |
|   if (got != expect) {
 | |
|     ThrowError("Check failed", message)
 | |
|   }
 | |
| }
 | |
| 
 | |
| public Action:TestFloats(args)
 | |
| {
 | |
|   new Float:x = 5.3
 | |
|   new Float:y = 10.2
 | |
| 
 | |
|   check(x < y, true)
 | |
|   check(x <= y, true)
 | |
|   check(x > y, false)
 | |
|   check(x >= y, false)
 | |
|   check(x == y, false)
 | |
|   check(x != y, true)
 | |
| 
 | |
|   x = 10.5
 | |
|   y = 2.3
 | |
| 
 | |
|   check(x < y, false)
 | |
|   check(x <= y, false)
 | |
|   check(x > y, true)
 | |
|   check(x >= y, true)
 | |
|   check(x == y, false)
 | |
|   check(x != y, true)
 | |
| 
 | |
|   x = 10.5
 | |
|   y = x
 | |
| 
 | |
|   check(x < y, false)
 | |
|   check(x <= y, true)
 | |
|   check(x > y, false)
 | |
|   check(x >= y, true)
 | |
|   check(x == y, true)
 | |
|   check(x != y, false)
 | |
| 
 | |
|   x = 0.0
 | |
|   y = 0.0
 | |
|   new Float:nan = x / y
 | |
| 
 | |
|   check(x < nan, false)
 | |
|   check(x <= nan, false)
 | |
|   check(x > nan, false)
 | |
|   check(x >= nan, false)
 | |
|   check(x == nan, false)
 | |
|   check(x != nan, true)
 | |
|   check(nan < y, false)
 | |
|   check(nan <= y, false)
 | |
|   check(nan > y, false)
 | |
|   check(nan >= y, false)
 | |
|   check(nan == y, false)
 | |
|   check(nan != y, true)
 | |
|   check(nan == nan, false)
 | |
|   check(nan != nan, true)
 | |
| 
 | |
|   x = 10.5
 | |
|   y = 0.0
 | |
|   check(!x, false)
 | |
|   check(!y, true)
 | |
|   check(!nan, true)
 | |
| 
 | |
|   y = -2.7
 | |
|   check(-x == -10.5, true)
 | |
|   check(-y == 2.7, true)
 | |
| 
 | |
|   new String:buffer[32]
 | |
|   Format(buffer, sizeof(buffer), "%f", nan)
 | |
|   check(StrEqual(buffer, "NaN"), true)
 | |
| 
 | |
|   PrintToServer("Tests finished.")
 | |
| 
 | |
|   return Plugin_Stop
 | |
| }
 |