public void CompareTest() { var cc = new ChangingComparer(); for (int i = 0; i < 1000; i++) { var(_, t) = GetRandomDerivation(); var lineCount = random.Next(1, 10); List <Core.YinYang> r1 = new List <Core.YinYang>(); List <Core.YinYang> r2 = new List <Core.YinYang>(); List <int> c = new List <int>(); for (int j = 0; j < lineCount; j++) { var line = random.Next(0, 1); r1.Add((Core.YinYang)line); if (t.Contains(j)) { r2.Add((Core.YinYang)Convert.ToInt32(!Convert.ToBoolean(line))); c.Add(j); } else { r2.Add((Core.YinYang)line); } } Assert.IsTrue(cc.Compare(new Core.Painting(r2), new Core.Painting(r1)) .SequenceEqual(c)); Assert.IsFalse(cc.Compare(new Core.Painting(r1).ChangeLines(0), new Core.Painting(r2)) .SequenceEqual(c)); } }