public void Clone_ObjectsWith3Params_ReturnsFullObjectCopy()
        {
            SystemParams systemParams = GetDefaultWith3Params();

            SystemParams cloned = systemParams.Clone();

            Assert.AreEqual(cloned.Count, systemParams.Count);
            Assert.AreEqual(cloned.DisplayText[0], systemParams.DisplayText[0]);
            Assert.AreEqual(cloned.DisplayText[1], systemParams.DisplayText[1]);
            Assert.AreEqual(cloned.ImageIndex, systemParams.ImageIndex);
            Assert.AreEqual(cloned.IsFilled, systemParams.IsFilled);
            Assert.AreEqual(cloned.SaveAsLuaTable(string.Empty),
                            systemParams.SaveAsLuaTable(string.Empty));

            var systemParamArr       = (SystemParam[])systemParams.Items;
            var clonedSystemParamArr = (SystemParam[])cloned.Items;

            for (int i = 0; i < systemParamArr.Length; i++)
            {
                Assert.AreEqual(systemParamArr[i].Name,
                                clonedSystemParamArr[i].Name);
                Assert.AreEqual(systemParamArr[i].LuaName,
                                clonedSystemParamArr[i].LuaName);
                Assert.AreEqual(systemParamArr[i].Meter,
                                clonedSystemParamArr[i].Meter);
            }
        }