コード例 #1
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);
        }
コード例 #2
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);
        }