public void Create_FromState_InitializedField()
		{
			var state = new GameState()
			{
				Player2 = new GameState.Player()
				{
					Combo = 12,
					Points = 10,
					Field = new int[,] 
					{ 
						{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
						{ 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 },
						{ 0, 0, 0, 0, 0, 0, 0, 2, 2, 0 },
						{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
					},
				},
				Player1 = new GameState.Player()
				{
					Combo = 0,
					Points = 0,
					Field = new int[,]
					{
						{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
						{ 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 },
						{ 0, 0, 0, 0, 0, 0, 0, 2, 2, 0 },
						{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 },
					},
				},
			};
			var act = Field.Create(state, PlayerName.Player2);
			FieldAssert.AreEqual("..........|........X.|.......XX.", 10, 12, 0, act);
		}
        public void RoundtripHappyPath()
        {
            var dummy     = new SerializableDummy();
            var roundtrip = BinaryFormatterAssert.Roundtrip(dummy);

            FieldAssert.Equal(dummy, roundtrip);
        }
Esempio n. 3
0
        public void NotEqualIEnumerablesOfDummiesTwoDiffs()
        {
            var l1 = new[] { new Dummy {
                                 Value = 1
                             }, new Dummy {
                                 Value = 2
                             } };
            var l2 = new[] { new Dummy {
                                 Value = 2
                             }, new Dummy {
                                 Value = 5
                             } };

            var ex1 = Assert.Throws <AssertException>(() => FieldAssert.Equal(l1, l2));
            var em1 = "  Fields differ between expected and actual, here are the 2 differences:\r\n" +
                      "  expected[0].value: 1\r\n" +
                      "    actual[0].value: 2\r\n" +
                      "\r\n" +
                      "  expected[1].value: 2\r\n" +
                      "    actual[1].value: 5";

            Assert.AreEqual(em1, ex1.Message);

            var ex2 = Assert.Throws <AssertException>(() => FieldAssert.Equal(l2, l1));
            var em2 = "  Fields differ between expected and actual, here are the 2 differences:\r\n" +
                      "  expected[0].value: 2\r\n" +
                      "    actual[0].value: 1\r\n" +
                      "\r\n" +
                      "  expected[1].value: 5\r\n" +
                      "    actual[1].value: 2";

            Assert.AreEqual(em2, ex2.Message);
        }
Esempio n. 4
0
        public void NotEqualNestedOneLevel3()
        {
            var l1 = new Level {
                Value = 1, Next = new Level {
                    Value = 2
                }
            };
            var l2 = new Level {
                Value = 1, Next = new Level {
                    Value = 3
                }
            };

            var ex1 = Assert.Throws <AssertException>(() => FieldAssert.Equal(l1, l2));
            var em1 = "  Found this difference between expected and actual:\r\n" +
                      "  expected.next.value: 2\r\n" +
                      "    actual.next.value: 3";

            Assert.AreEqual(em1, ex1.Message);

            var ex2 = Assert.Throws <AssertException>(() => FieldAssert.Equal(l2, l1));
            var em2 = "  Found this difference between expected and actual:\r\n" +
                      "  expected.next.value: 3\r\n" +
                      "    actual.next.value: 2";

            Assert.AreEqual(em2, ex2.Message);
        }
		public void Apply_IClearRow_Added()
		{
			var field = Field.Create(0, 0, 2, "..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|........XX|.XX.....XX|XX......XX|XXXX....XX");

			var act = field.Apply(Block.I, new Position(4, 19));
			var exp = "..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|..........|........XX|.XX.....XX|XX......XX";
			FieldAssert.AreEqual(exp, 0, 0, 2, act);
		}
		public void Create_Field_InitializedField()
		{
			var act = Field.Create(0, 0, 17, @"
..........
.......XX.
");
			FieldAssert.AreEqual("..........|.......XX.", 0, 0, 17, act);
		}
		public void SkipBlock_None_SkipOf3()
		{
			var exp = "..X..XX...|XXX...XXXX|XXXX.XXXXX";
			var field = Field.Create(1, 2, 4, exp);

			var act = field.SkipBlock();
			FieldAssert.AreEqual(exp, 1, 0, 3, act);
		}
		public void LockRow_FieldWithouEmptyRpws_NoneField()
		{
			var field = Field.Create(10, 3, 17, @"
........X.
.......XX.");
			var act = field.LockRow();
			FieldAssert.IsNone(act);
		}
Esempio n. 9
0
        public void EqualIEnumerablesOfInts()
        {
            var l1 = new[] { 1, 2 };
            var l2 = new[] { 1, 2 };

            FieldAssert.Equal(l1, l1);
            FieldAssert.Equal(l2, l1);
            FieldAssert.Equal(l1, l2);
        }
		public void LockRow_None_FieldWithLessRows()
		{
			var field = Field.Create(10, 3, 17, @"
..........
........X.
.......XX.");
			var act = field.LockRow();
			FieldAssert.AreEqual("........X.|.......XX.", 10, 3, 17, act);
		}
		public void Garage_OneRow_NoSpace()
		{
			var field = Field.Create(0, 0, 17, @"
......X..X
.XXXXXXXXX
XX.XXXXXXX");

			var act = field.Garbage(Row.Garbage[2]);
			FieldAssert.IsNone(act);
		}
        public void HappyPath()
        {
            var actual = new Dummy {
                Value = 2
            };
            var roundtrip = XmlSerializerAssert.Roundtrip(actual);

            Assert.AreEqual(roundtrip.Value, actual.Value);
            FieldAssert.Equal(actual, roundtrip);
        }
		public void Apply_FullClear_Adds18Points()
		{
			var field = Field.Create(6, 0, 17, @"
..........
...XXXXXXX
XX.XXXXXXX");

			var act = field.Apply(Block.J[Block.RotationType.Uturn], new Position(0, 1));
			var exp = "..........|..........|..........";
			FieldAssert.AreEqual(exp, 24, 1, 17, act);
		}
		public void Apply_SingleClearWithCombo1_Adds0Points()
		{
			var field = Field.Create(8, 1, 17, @"
..........
....XXXXXX
.XXXXXXXXX");

			var act = field.Apply(Block.L[Block.RotationType.Uturn], new Position(0, 1));
			var exp = "..........|..........|XXX.XXXXXX";
			FieldAssert.AreEqual(exp, 8, 1, 17, act);
		}
		public void Apply_DoubleClear0_Adds3Points()
		{
			var field = Field.Create(7, 0, 17, @"
.........X
...XXXXXXX
.XXXXXXXXX");

			var act = field.Apply(Block.L[Block.RotationType.Uturn], new Position(0, 1));
			var exp = "..........|..........|.........X";
			FieldAssert.AreEqual(exp, 10, 1, 17, act);
		}
        public void EqualXmlAttributeClass()
        {
            var actual = new XmlAttributeClass {
                Value = 2
            };
            var expectedXml = "<XmlAttributeClass Value=\"2\" />";
            var roundtrip   = DataContractSerializerAssert.Equal(expectedXml, actual, XmlAssertOptions.IgnoreNamespaces | XmlAssertOptions.IgnoreDeclaration);

            Assert.AreEqual(roundtrip.Value, actual.Value);
            FieldAssert.Equal(actual, roundtrip);
        }
		public void Apply_TripleClear_Adds6Points()
		{
			var field = Field.Create(4, 0, 17, @"
..........
.XXXXXXXXX
.XXXXXXXXX
.XXXXXXXXX");

			var act = field.Apply(Block.I[Block.RotationType.Left], new Position(0, 0));
			var exp = "..........|..........|..........|X.........";
			FieldAssert.AreEqual(exp, 10, 1, 17, act);
		}
		public void Apply_I_Added()
		{
			var field = Field.Create(0, 0, 17, @"
..........
..........
..........
.......XX.
");
			var act = field.Apply(Block.I, new Position(0, 3));
			var exp = "..........|..........|..........|XXXX...XX.";
			FieldAssert.AreEqual(exp, 0, 0, 17, act);
		}
        public void EqualNoDeclarationOrNamespaces()
        {
            var actual = new DataContractDummy {
                Value = 2
            };
            var expectedXml = "<DataContractDummy>\r\n" +
                              "  <Value>2</Value>\r\n" +
                              "</DataContractDummy>";
            var roundtrip = DataContractSerializerAssert.Equal(expectedXml, actual, XmlAssertOptions.IgnoreDeclaration | XmlAssertOptions.IgnoreNamespaces);

            Assert.AreEqual(roundtrip.Value, actual.Value);
            FieldAssert.Equal(actual, roundtrip);
        }
Esempio n. 20
0
        public void Apply_DoubleTSpin_AddsPointsAndSkips()
        {
            var field = Field.Create(0, 0, 17, @"
..X..XX...
XXX...XXXX
XXXX.XXXXX");

            var act = field.Apply(Block.T[Block.RotationType.Uturn], new Position(3, 1));

            var exp = "..........|..........|..X..XX...";

            FieldAssert.AreEqual(exp, 10, 1, 18, act);
        }
Esempio n. 21
0
        public void EqualParentChildren()
        {
            var p1 = new Parent {
                new Child(1), new Child(2)
            };
            var p2 = new Parent {
                new Child(1), new Child(2)
            };

            FieldAssert.Equal(p1, p1);
            FieldAssert.Equal(p2, p1);
            FieldAssert.Equal(p1, p2);
        }
Esempio n. 22
0
        public void EqualNestedOneLevel1()
        {
            var l1 = new Level {
                Value = 2
            };
            var l2 = new Level {
                Value = 2
            };

            FieldAssert.Equal(l1, l1);
            FieldAssert.Equal(l2, l1);
            FieldAssert.Equal(l1, l2);
        }
Esempio n. 23
0
        public void EqualDummies()
        {
            var d1 = new Dummy {
                Value = 1
            };
            var d2 = new Dummy {
                Value = 1
            };

            FieldAssert.Equal(d1, d1);
            FieldAssert.Equal(d2, d1);
            FieldAssert.Equal(d1, d2);
        }
		public void Garbage_TwoRows_AppliedSuccessful()
		{
			var field = Field.Create(0, 0, 17, @"
..........
..........
......X..X
.XXXXXXXXX
XX.XXXXXXX");

			var act = field.Garbage(Row.Garbage[0], Row.Garbage[1]);
			var exp = "......X..X|.XXXXXXXXX|XX.XXXXXXX|.XXXXXXXXX|X.XXXXXXXX";
			FieldAssert.AreEqual(exp, 0, 0, 17, act);
		}
		public void Apply_QuadrupleClear_Adds10Points()
		{
			var field = Field.Create(8, 0, 17, @"
XX.......X
XXXXX.XXXX
XXXXX.XXXX
XXXXX.XXXX
XXXXX.XXXX");

			var act = field.Apply(Block.I[Block.RotationType.Left], new Position(5, 1));
			var exp = "..........|..........|..........|..........|XX.......X";
			FieldAssert.AreEqual(exp, 18, 1, 18, act);
		}
        public void Equal()
        {
            var actual = new DataContractDummy {
                Value = 2
            };
            var expectedXml = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n" +
                              "<DataContractDummy xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://schemas.datacontract.org/2004/07/Gu.SerializationAsserts.Tests.Dtos\">\r\n" +
                              "  <Value>2</Value>\r\n" +
                              "</DataContractDummy>";
            var roundtrip = DataContractSerializerAssert.Equal(expectedXml, actual);

            Assert.AreEqual(roundtrip.Value, actual.Value);
            FieldAssert.Equal(actual, roundtrip);
        }
Esempio n. 27
0
        public void Apply_Row1ToMuchSpaceToMuchSpaceOnHead_NoTSpin()
        {
            var field = Field.Create(0, 0, 0, @"
				..X..XX...
				XX....XXXX
				XXXX.XXXXX"                );

            var act = field.Apply(Block.T[Block.RotationType.Uturn], new Position(3, 1));

            FieldAssert.AreEqual(@"
				..........
				..X..XX...
				XX.XXXXXXX"                , 5, 1, 0, act);
        }
        /// <summary>
        /// 1. Places <paramref name="item"/> in a ContainerClass{T} container1
        /// 2. Serializes container1
        /// 3. Deserializes the containerJson to container2 and does FieldAssert.Equal(container1, container2);
        /// 4. Serializes container2
        /// 5. Checks JsonAssert.Equal(containerJson1, containerJson2, JsonAssertOptions.Verbatim);
        /// </summary>
        /// <typeparam name="T">The type of <paramref name="item"/></typeparam>
        /// <param name="item">The instance to roundtrip</param>
        /// <param name="settings">The settings to use when serializing and deserializing.</param>
        /// <returns>The serialized and deserialized instance (container2.Other)</returns>
        public static T Roundtrip <T>(T item, JsonSerializerSettings settings)
        {
            Roundtripper.Simple(item, nameof(item), x => ToJson(x, settings), x => FromJson <T>(x, settings));
            var roundtripped = Roundtripper.InContainer(
                item,
                nameof(item),
                x => ToJson(x, settings),
                x => FromJson <ContainerClass <T> >(x, settings),
                (e, a) => JsonAssert.Equal(e, a, JsonAssertOptions.Verbatim));

            FieldAssert.Equal(item, roundtripped);

            return(roundtripped);
        }
        /// <summary>
        /// 1. Places <paramref name="item"/> in a ContainerClass{T} container1
        /// 2. Serializes container1
        /// 3. Deserializes the containerJson to container2 and does FieldAssert.Equal(container1, container2);
        /// 4. Serializes container2
        /// 5. Checks JsonAssert.Equal(containerJson1, containerJson2, JsonAssertOptions.Verbatim);
        /// </summary>
        /// <typeparam name="T">The type of <paramref name="item"/></typeparam>
        /// <param name="item">The instance to roundtrip</param>
        /// <returns>The serialized and deserialized instance (container2.Other)</returns>
        public static T Roundtrip <T>(T item)
        {
            Roundtripper.Simple(item, nameof(item), ToJson, FromJson <T>);
            var roundtripped = Roundtripper.InContainer(
                item,
                nameof(item),
                ToJson,
                FromJson <ContainerClass <T> >,
                (e, a) => JsonAssert.Equal(e, a, JsonAssertOptions.Verbatim));

            FieldAssert.Equal(item, roundtripped);

            return(roundtripped);
        }
        public void EqualWithAttributeAndDeclaration()
        {
            var actual = new Dummy {
                Value = 2
            };
            var expectedXml = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n" +
                              "<Dummy xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n" +
                              "  <Value>2</Value>\r\n" +
                              "</Dummy>";
            var roundtrip = XmlSerializerAssert.Equal(expectedXml, actual);

            Assert.AreEqual(roundtrip.Value, actual.Value);
            FieldAssert.Equal(actual, roundtrip);
        }