public void T_GetRandomKey_WithParams() { WordGenerator gen = InitSimpleWordGen(); ChainMap subMap = new ChainMap(); ChainKey key1 = new ChainKey(new string[] { "key1", "key2", "key3" }); ChainKey key2 = new ChainKey(new string[] { "key1", "key2", "key4" }); subMap.AddToChain(key1, "val1"); subMap.AddToChain(key2, "val2"); bool key1Found, key2Found; key1Found = key2Found = false; for (int i = 0; i < 10; i++) { ChainKey currKey = gen.GetRandomKey(subMap); if (key1.Equals(currKey)) { key1Found = true; } else if (key2.Equals(currKey)) { key2Found = true; } else { Assert.Fail("Invalid key returned"); } } if (!(key1Found && key2Found)) { Assert.Fail("GetRandomKey is not random"); } }