class TestIntHash extends haxe.unit.TestCase { function spamAlot() { var values = new Array< Null >(); values[0] = null; var h = new Map(); 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(); 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(); 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==""); } }