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));
            }
        }