import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.*; public class ResizingHashMapExtraTest { @Test public void extrTest_put_get_resize_get() { String[] strings = new String[200]; ResizingHashMap<Integer, String> map = new ResizingHashMap<Integer, String>(20); for(int i = 0; i < 200; i++) { strings[i] = getRndString(); assertTrue(map.put(i, strings[i])); } for(int i = 0; i < 200; i++) assertEquals(strings[i], map.get(i)); map.resize(200); for(int i = 0; i < 200; i++) assertEquals(strings[i], map.get(i)); assertEquals("Anzahl an Buckets stimmt nicht!", map.buckets.length, 200); } @Test public void extrTest_put_on_same_index() { ResizingHashMap<Integer, String> map = new ResizingHashMap<Integer, String>(20); map.put(1230971238, "Hallo Welt!"); map.put(1230971238, new String("Auf Wiedersehen Welt!")); assertEquals(map.get(1230971238), new String("Auf Wiedersehen Welt!")); } @Test public void extrTest_some_fun_with_null_pointer__put_get_put_contains_get_remove_contains_remove() { ResizingHashMap<Integer, String> map = new ResizingHashMap<Integer, String>(20); try { map.put(null, "Hallo Welt!"); System.err.println("An deiner Stelle wuerde ich in put(...) fuer key = null eine IAE werfen"); }catch(Exception e) { if(e.getClass() != IllegalArgumentException.class) { System.err.println("An deiner Stelle wuerde ich in put(...) fuer key = null eine IAE werfen"); } } try { assertEquals(map.get(null), "Hallo Welt!"); System.err.println("An deiner Stelle wuerde ich in get(...) fuer key = null eine IAE werfen"); }catch(Exception e) { if(e.getClass() != IllegalArgumentException.class) { System.err.println("An deiner Stelle wuerde ich in get(...) fuer key = null eine IAE werfen"); } } try { assertFalse(map.containsKey(null)); System.err.println("An deiner Stelle wuerde ich in containsKey(...) fuer key = null eine IAE werfen"); }catch(Exception e) { if(e.getClass() != IllegalArgumentException.class) { System.err.println("An deiner Stelle wuerde ich in containsKey(...) fuer key = null eine IAE werfen"); } } try { int i = map.getBucketIndex(null); assertEquals("Irgendetwas sollte falsch laufen.. man kann nicht den null key mappen!", i, -1); System.err.println("An deiner Stelle wuerde ich in getBucketIndex(...) fuer key = null eine IAE werfen"); }catch(Exception e) { if(e.getClass() != IllegalArgumentException.class) { System.err.println("An deiner Stelle wuerde ich in getBucketIndex(...) fuer key = null eine IAE werfen"); } } map.put(new Integer(444), null); assertTrue(map.containsKey(new Integer(444))); assertEquals(map.get(new Integer(444)), null); assertTrue(map.remove(new Integer(444))); assertFalse(map.containsKey(new Integer(444))); assertFalse(map.remove(new Integer(444))); } private String getRndString() { String c = ""; for(int i = 0; i < 3; i++) c += (char)((int)(Math.random()*(122.0-48.0) + 48.0)); return c; } }