forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			67 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			67 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
|  | class TestIntHash extends haxe.unit.TestCase | ||
|  | { | ||
|  |    function spamAlot() | ||
|  |    { | ||
|  |       var values = new Array< Null<Int> >(); | ||
|  |       values[0] = null; | ||
|  |       var h = new Map<Int,Int>(); | ||
|  | 
 | ||
|  |       for(i in 0...2000) | ||
|  |       { | ||
|  |          for(j in 0...2000) | ||
|  |          { | ||
|  |             var idx = Std.int(Math.random()*2999); | ||
|  |             if (h.get(idx)!=values[idx]) | ||
|  |                throw "Bad value"; | ||
|  |             if ( (i % 4)== 1 || Math.random()>0.5 ) | ||
|  |             { | ||
|  |                if (h.remove(idx) != (values[idx]!=null)) | ||
|  |                   throw "Error in remove!"; | ||
|  |                values[idx] = null; | ||
|  |             } | ||
|  |             else | ||
|  |             { | ||
|  |                h.set(idx,j); | ||
|  |                values[idx] = j; | ||
|  |             } | ||
|  |          } | ||
|  |          var keys = h.keys(); | ||
|  |          var keyed = new Array<Bool>(); | ||
|  |          for(i in 0...values.length) | ||
|  |             keyed[i] = false; | ||
|  |          for( key in h.keys()) | ||
|  |             keyed[ key ] = true; | ||
|  |          for(i in 0...values.length) | ||
|  |             if (keyed[i]!=(values[i]!=null)) | ||
|  |               throw "Bad value"; | ||
|  | 
 | ||
|  |          var valued = new Array<Int>(); | ||
|  |          for( val in h.iterator()) | ||
|  |             valued[val]++; | ||
|  | 
 | ||
|  |          for(val in values) | ||
|  |             if (val!=null) | ||
|  |             { | ||
|  |                if (valued[val]<1) | ||
|  |                   throw "Not valued!"; | ||
|  |                valued[val]--; | ||
|  |             } | ||
|  |       } | ||
|  |    } | ||
|  | 
 | ||
|  |    public function test() | ||
|  |    { | ||
|  |       var err = ""; | ||
|  |       try | ||
|  |       { | ||
|  |          spamAlot(); | ||
|  |       } | ||
|  |       catch(e:String) | ||
|  |       { | ||
|  |          err = e; | ||
|  |       } | ||
|  |       assertTrue(err==""); | ||
|  |    } | ||
|  | 
 | ||
|  | } |