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.");
        }