public void TestHasValue() { var opcodes = Utilities.GetValues <Opcode>(); var usedOpcodes = opcodes.ToDictionary(opcode => opcode, opcode => false); usedOpcodes[Opcode.NULL_OPCODE] = true; // ignore var versions = Utilities.GetValues <ClientVersionBuild>(); var directions = Utilities.GetValues <Direction>().ToList(); foreach (var version in versions) { foreach (var direction in directions) { var dict = Opcodes.GetOpcodeDictionary(version, direction); foreach (var pair in dict) { usedOpcodes[pair.Key] = true; } } } var allUsed = usedOpcodes.All(pair => pair.Value); if (!allUsed) { foreach (var usedOpcode in usedOpcodes.Where(usedOpcode => !usedOpcode.Value)) { Console.WriteLine("Warning: {0} does not have any id in any version.", usedOpcode.Key); } } Assert.IsTrue(allUsed, "Found unused opcodes defined."); }