private static bool runCommand(ref ReferenceSet <Key> set, Key[] domain, Command cmd) { switch (cmd.type) { case CmdType.CREATE: set = new ReferenceSet <Key>((int)cmd.arg); break; case CmdType.ADD: return(set.add(domain[(int)cmd.arg])); case CmdType.DEL: return(set.delete(domain[(int)cmd.arg])); case CmdType.CLEAR: set.clear(); break; case CmdType.UNION: set.unionWith(makeSet(domain, (IEnumerable <int>)cmd.arg)); break; case CmdType.INTERSECT: set.intersectWith(makeSet(domain, (IEnumerable <int>)cmd.arg)); break; } return(true); }
public void findAddDeleteAndClearTest_nullKey() { var set = new ReferenceSet <Key>(); set.add(new Key()); set.add(new Key()); Assert.Throws <ArgumentNullException>(() => set.add(null)); Assert.Throws <ArgumentNullException>(() => set.find(null)); Assert.Throws <ArgumentNullException>(() => set.delete(null)); }
private static void assertSetHasKeys(ReferenceSet <Key> set, Key[] domain, IEnumerable <int> keys) { int keyCount = (keys == null) ? 0 : keys.Count(); Assert.Equal(keyCount, set.count); bool[] keyMap = makeKeyMap(domain.Length, keys); for (int i = 0; i < domain.Length; i++) { if (keyMap[i]) { Assert.True(set.find(domain[i])); Assert.False(set.add(domain[i])); } else { Assert.False(set.find(domain[i])); Assert.False(set.delete(domain[i])); } } Assert.Equal(keyCount, set.count); }