コード例 #1
0
        public void TestMultiArrayValues()
        {
            MockRepo       repo = new MockRepo();
            ArrayTestClass obj  = new ArrayTestClass {
                arr = new ArrayTestClass.Nested[3] {
                    new ArrayTestClass.Nested {
                        nestedValues = new double[2] {
                            7.0, 8.0
                        }
                    },
                    new ArrayTestClass.Nested {
                        nestedValues = new double[3] {
                            17.0, 18.0, 19.0
                        }
                    },
                    new ArrayTestClass.Nested {
                        nestedValues = new double[4] {
                            27.0, 28.0, 29.0, 30.0
                        }
                    }
                }
            };

            repo.AddDef("a", obj);
            ModDefinition mod = new ModDefinition {
                guid = "a", field = "arr[0].nestedValues[1]", value = 10
            };

            new Mod("MultiArrayValues", mod, repo).Apply();
            Assert.AreEqual(obj.arr[0].nestedValues[1], 10.0);
        }
コード例 #2
0
        public void TestLastArrayObject()
        {
            MockRepo       repo = new MockRepo();
            ArrayTestClass obj  = new ArrayTestClass {
                arr = new ArrayTestClass.Nested[3] {
                    new ArrayTestClass.Nested {
                        value = 7
                    }, new ArrayTestClass.Nested {
                        value = 8
                    }, new ArrayTestClass.Nested {
                        value = 9
                    }
                }
            };

            repo.AddDef("a", obj);
            ModDefinition mod = new ModDefinition {
                guid = "a", field = "arr[2].value", value = 10
            };

            new Mod("LastArray", mod, repo).Apply();
            Assert.AreEqual(obj.arr[0].value, 7);
            Assert.AreEqual(obj.arr[1].value, 8);
            Assert.AreEqual(obj.arr[2].value, 10);
        }
コード例 #3
0
        public void ReadArrayTestClassContainingEncodedMarkup()
        {
            string         xml    = ArrayTestClass.GetXml().Replace("2", XmlEncode(@"<foo><![CDATA[bar]]>"));
            ArrayTestClass actual = (ArrayTestClass)NetReflector.Read(xml, table);

            Assert.AreEqual(@"<foo><![CDATA[bar]]>", actual.StringArray[1]);
            Assert.AreEqual(@"<foo><![CDATA[bar]]>", actual.Elements[1].ID);
        }
コード例 #4
0
        public void TestLastArrayValue()
        {
            MockRepo       repo = new MockRepo();
            ArrayTestClass obj  = new ArrayTestClass {
                values = new double[3] {
                    7.0, 8.0, 9.0
                }
            };

            repo.AddDef("a", obj);
            ModDefinition mod = new ModDefinition {
                guid = "a", field = "values[2]", value = 10
            };

            new Mod("LastArrayValue", mod, repo).Apply();
            Assert.AreEqual(obj.values[0], 7.0);
            Assert.AreEqual(obj.values[1], 8.0);
            Assert.AreEqual(obj.values[2], 10.0);
        }
コード例 #5
0
        public void TestBadBracket()
        {
            MockRepo       repo = new MockRepo();
            ArrayTestClass obj  = new ArrayTestClass {
                arr = new ArrayTestClass.Nested[3] {
                    new ArrayTestClass.Nested {
                        value = 7
                    }, new ArrayTestClass.Nested {
                        value = 8
                    }, new ArrayTestClass.Nested {
                        value = 9
                    }
                }
            };

            repo.AddDef("a", obj);
            ModDefinition mod = new ModDefinition {
                guid = "a", field = "arr[.value", value = 10
            };

            Assert.ThrowsException <ModException>(() => new Mod("BadBracket", mod, repo).Apply());
        }
コード例 #6
0
        public void TestOutOfBound()
        {
            MockRepo       repo = new MockRepo();
            ArrayTestClass obj  = new ArrayTestClass {
                arr = new ArrayTestClass.Nested[3] {
                    new ArrayTestClass.Nested {
                        value = 7
                    }, new ArrayTestClass.Nested {
                        value = 8
                    }, new ArrayTestClass.Nested {
                        value = 9
                    }
                }
            };

            repo.AddDef("a", obj);
            ModDefinition mod = new ModDefinition {
                guid = "a", field = "arr[3].value", value = 10
            };

            Assert.ThrowsException <IndexOutOfRangeException> (() => new Mod("OutOfBound", mod, repo).Apply());
        }
コード例 #7
0
        public void TestArray()
        {
            var rand = new Random(0);
            var a1   = new int[100];

            for (int i = 0; i < a1.Length; i++)
            {
                a1[i] = rand.Next();
            }
            var yaml = serializer.Serialize(a1);

            Assert.AreEqual(a1, serializer.Deserialize(yaml)[0]);

            var a2 = new byte[100];

            for (int i = 0; i < a2.Length; i++)
            {
                a2[i] = Convert.ToByte(rand.Next() & 0xff);
            }
            yaml = serializer.Serialize(a2);
            Assert.AreEqual(a2, serializer.Deserialize(yaml)[0]);

            var a3 = new double[100];

            for (int i = 0; i < a3.Length; i++)
            {
                a3[i] = rand.NextDouble();
            }
            yaml = serializer.Serialize(a3);
            var a3restored = (double[])serializer.Deserialize(yaml)[0];

            for (int i = 0; i < a3.Length; i++)
            {
                Assert.AreEqual(a3[i].ToString(), a3restored[i].ToString());
            }

            var a4 = new double[10, 10];

            for (int i = 0; i < a4.Length; i++)
            {
                a4[i / 10, i % 10] = rand.NextDouble();
            }
            yaml = serializer.Serialize(a4);
            var a4restored = (double[, ])serializer.Deserialize(yaml)[0];

            for (int i = 0; i < a4.Length; i++)
            {
                Assert.AreEqual(a4[i / 10, i % 10].ToString(), a4restored[i / 10, i % 10].ToString());
            }

            var a5 = new ArrayTestElement[100];
            var a6 = new ArrayTestElement[10, 10];
            var a7 = new ArrayTestElement2[100];
            var a8 = new ArrayTestElement2[10, 10];
            var a9 = new ArrayTestClass();

            for (int i = 0; i < 100; i++)
            {
                a5[i].a = rand.Next();
                a5[i].b = (char)(rand.Next() & 0xffff);
                a6[i % 10, i / 10].a = rand.Next();
                a6[i % 10, i / 10].b = (char)(rand.Next() & 0xffff);
                a7[i]                             = new ArrayTestElement2();
                a7[i].a                           = rand.Next();
                a7[i].b                           = (char)(rand.Next() & 0xff);
                a8[i % 10, i / 10]                = new ArrayTestElement2();
                a8[i % 10, i / 10].a              = rand.Next();
                a8[i % 10, i / 10].b              = (char)(rand.Next() & 0xffff);
                a9.IntArray1[i]                   = rand.Next();
                a9.IntArray2[i % 10, i / 10]      = rand.Next();
                a9.StructArray1[i].a              = rand.Next();
                a9.StructArray1[i].b              = (char)(rand.Next() & 0xffff);
                a9.StructArray2[i % 10, i / 10].a = rand.Next();
                a9.StructArray2[i % 10, i / 10].b = (char)(rand.Next() & 0xffff);
            }

            yaml = serializer.Serialize(a5);
            var a5restored = (ArrayTestElement[])serializer.Deserialize(yaml)[0];

            Assert.AreEqual(a5, a5restored);

            yaml = serializer.Serialize(a6);
            var a6restored = (ArrayTestElement[, ])serializer.Deserialize(yaml)[0];

            Assert.AreEqual(a6, a6restored);

            yaml = serializer.Serialize(a7);
            var a7restored = (ArrayTestElement2[])serializer.Deserialize(yaml)[0];

            Assert.AreEqual(a7, a7restored);

            yaml = serializer.Serialize(a8);
            var a8restored = (ArrayTestElement2[, ])serializer.Deserialize(yaml)[0];

            Assert.AreEqual(a8, a8restored);

            yaml = serializer.Serialize(a9);
            var a9restored = (ArrayTestClass)serializer.Deserialize(yaml)[0];

            Assert.AreEqual(a9.IntArray1, a9restored.IntArray1);
            Assert.AreEqual(a9.IntArray2, a9restored.IntArray2);
            Assert.AreEqual(a9.StructArray1, a9restored.StructArray1);
            Assert.AreEqual(a9.StructArray2, a9restored.StructArray2);

            var a10 = new TestEnum[10];

            for (int i = 0; i < a10.Length; i++)
            {
                a10[i] = (rand.Next() & 1) == 0 ? TestEnum.abc : TestEnum.あいう;
            }
            yaml = serializer.Serialize(a10);
            var a10restored = (TestEnum[])serializer.Deserialize(yaml)[0];

            Assert.AreEqual(a10, a10restored);
        }
コード例 #8
0
        public void ReadArrayTestClassWithEnums()
        {
            ArrayTestClass actual = (ArrayTestClass)NetReflector.Read(ArrayTestClass.GetXmlForDays(), table);

            ArrayTestClass.AssertEquals(ArrayTestClass.CreateDays(), actual);
        }
コード例 #9
0
        public void ReadArrayTestClass()
        {
            ArrayTestClass actual = (ArrayTestClass)NetReflector.Read(ArrayTestClass.GetXml(), table);

            ArrayTestClass.AssertEquals(ArrayTestClass.Create(), actual);
        }
コード例 #10
0
        public void WriteArrayTestClass()
        {
            string xml = NetReflector.Write(ArrayTestClass.Create());

            Assert.AreEqual(ArrayTestClass.GetXml(), xml);
        }
コード例 #11
0
        public void TestArray()
        {
            var rand = new Random(0);
            var a1 = new int[100];
            for ( int i = 0; i < a1.Length; i++ )
                a1[i] = rand.Next();
            var yaml = serializer.Serialize(a1);
            Assert.AreEqual(a1, serializer.Deserialize(yaml)[0]);

            var a2 = new byte[100];
            for ( int i = 0; i < a2.Length; i++ )
                a2[i] = Convert.ToByte(rand.Next() & 0xff);
            yaml = serializer.Serialize(a2);
            Assert.AreEqual(a2, serializer.Deserialize(yaml)[0]);

            var a3 = new double[100];
            for ( int i = 0; i < a3.Length; i++ )
                a3[i] = rand.NextDouble();
            yaml = serializer.Serialize(a3);
            var a3restored = (double[])serializer.Deserialize(yaml)[0];
            for ( int i = 0; i < a3.Length; i++ )
                Assert.AreEqual(a3[i].ToString(), a3restored[i].ToString());

            var a4 = new double[10,10];
            for ( int i = 0; i < a4.Length; i++ )
                a4[i / 10, i % 10] = rand.NextDouble();
            yaml = serializer.Serialize(a4);
            var a4restored = (double[,])serializer.Deserialize(yaml)[0];
            for ( int i = 0; i < a4.Length; i++ )
                Assert.AreEqual(a4[i / 10, i % 10].ToString(), a4restored[i / 10, i % 10].ToString());

            var a5 = new ArrayTestElement[100];
            var a6 =new ArrayTestElement[10,10];
            var a7 = new ArrayTestElement2[100];
            var a8 = new ArrayTestElement2[10, 10];
            var a9 = new ArrayTestClass();

            for ( int i = 0; i < 100; i++ ) {
                a5[i].a = rand.Next();
                a5[i].b = (char)( rand.Next() & 0xffff );
                a6[i % 10, i / 10].a = rand.Next();
                a6[i % 10, i / 10].b = (char)( rand.Next() & 0xffff );
                a7[i] = new ArrayTestElement2();
                a7[i].a = rand.Next();
                a7[i].b = (char)(rand.Next() & 0xff);
                a8[i % 10, i / 10] = new ArrayTestElement2();
                a8[i % 10, i / 10].a = rand.Next();
                a8[i % 10, i / 10].b = (char)( rand.Next() & 0xffff );
                a9.IntArray1[i] = rand.Next();
                a9.IntArray2[i % 10, i / 10] = rand.Next();
                a9.StructArray1[i].a = rand.Next();
                a9.StructArray1[i].b = (char)( rand.Next() & 0xffff );
                a9.StructArray2[i % 10, i / 10].a = rand.Next();
                a9.StructArray2[i % 10, i / 10].b = (char)( rand.Next() & 0xffff );
            }
            
            yaml = serializer.Serialize(a5);
            var a5restored = (ArrayTestElement[])serializer.Deserialize(yaml)[0];
            Assert.AreEqual(a5, a5restored);
            
            yaml = serializer.Serialize(a6);
            var a6restored = (ArrayTestElement[,])serializer.Deserialize(yaml)[0];
            Assert.AreEqual(a6, a6restored);
            
            yaml = serializer.Serialize(a7);
            var a7restored = (ArrayTestElement2[])serializer.Deserialize(yaml)[0];
            Assert.AreEqual(a7, a7restored);

            yaml = serializer.Serialize(a8);
            var a8restored = (ArrayTestElement2[,])serializer.Deserialize(yaml)[0];
            Assert.AreEqual(a8, a8restored);

            yaml = serializer.Serialize(a9);
            var a9restored = (ArrayTestClass)serializer.Deserialize(yaml)[0];
            Assert.AreEqual(a9.IntArray1, a9restored.IntArray1);
            Assert.AreEqual(a9.IntArray2, a9restored.IntArray2);
            Assert.AreEqual(a9.StructArray1, a9restored.StructArray1);
            Assert.AreEqual(a9.StructArray2, a9restored.StructArray2);

            var a10 = new TestEnum[10];
            for ( int i = 0; i < a10.Length; i++ )
                a10[i] = ( rand.Next() & 1 ) == 0 ? TestEnum.abc : TestEnum.あいう;
            yaml = serializer.Serialize(a10);
            var a10restored = (TestEnum[])serializer.Deserialize(yaml)[0];
            Assert.AreEqual(a10, a10restored);
        }