Esempio n. 1
0
        public void TestRotationalAddAdjacenciesAdvanced()
        {
            var model = new AdjacentModel(Directions.Cartesian2d);
            var tile1 = new Tile(1);
            var tile2 = new Tile(2);
            var tile3 = new Tile(3);
            var tile4 = new Tile(4);

            var rotationBuilder = new TileRotationBuilder(TileRotationTreatment.Missing);

            rotationBuilder.Add(tile1, 1, false, tile3);
            rotationBuilder.Add(tile2, 1, false, tile4);
            var rotations = rotationBuilder.Build();

            model.AddAdjacency(new[] { tile1 }, new[] { tile2 }, 1, 0, 0, 4, false, rotations);

            var patternModel = model.GetPatternModel();

            CollectionAssert.AreEquivalent(new int[] { 1 }, patternModel.Propagator[0][0]);
            CollectionAssert.AreEquivalent(new int[] {   }, patternModel.Propagator[0][1]);
            CollectionAssert.AreEquivalent(new int[] {   }, patternModel.Propagator[0][2]);
            CollectionAssert.AreEquivalent(new int[] {   }, patternModel.Propagator[0][3]);
            CollectionAssert.AreEquivalent(new int[] {   }, patternModel.Propagator[1][0]);
            CollectionAssert.AreEquivalent(new int[] { 0 }, patternModel.Propagator[1][1]);
            CollectionAssert.AreEquivalent(new int[] {   }, patternModel.Propagator[1][2]);
            CollectionAssert.AreEquivalent(new int[] {   }, patternModel.Propagator[1][3]);
            CollectionAssert.AreEquivalent(new int[] {   }, patternModel.Propagator[2][0]);
            CollectionAssert.AreEquivalent(new int[] {   }, patternModel.Propagator[2][1]);
            CollectionAssert.AreEquivalent(new int[] { 3 }, patternModel.Propagator[2][2]);
            CollectionAssert.AreEquivalent(new int[] {   }, patternModel.Propagator[2][3]);
            CollectionAssert.AreEquivalent(new int[] {   }, patternModel.Propagator[3][0]);
            CollectionAssert.AreEquivalent(new int[] {   }, patternModel.Propagator[3][1]);
            CollectionAssert.AreEquivalent(new int[] {   }, patternModel.Propagator[3][2]);
            CollectionAssert.AreEquivalent(new int[] { 2 }, patternModel.Propagator[3][3]);
        }
        public void TestSetFrequencyWithRotations()
        {
            var model = new AdjacentModel(Directions.Cartesian2d);

            var tile1 = new Tile(1);
            var tile2 = new Tile(2);

            var builder = new TileRotationBuilder(4, true);

            builder.AddSymmetry(tile1, TileSymmetry.T);
            builder.SetTreatment(tile1, TileRotationTreatment.Generated);
            builder.SetTreatment(tile2, TileRotationTreatment.Generated);

            var rotations = builder.Build();

            model.SetFrequency(tile1, 1.0, rotations);
            model.SetFrequency(tile2, 1.0, rotations);

            var patternModel = model.GetPatternModel();

            double GetFrequency(Tile tile)
            {
                return(patternModel.Frequencies[model.TilesToPatterns[tile].First()]);
            }

            Assert.AreEqual(0.25, GetFrequency(tile1));
            Assert.AreEqual(0.25, GetFrequency(new Tile(new RotatedTile {
                Tile = tile1, Rotation = new Rotation(90)
            })));
            Assert.AreEqual(0.125, GetFrequency(tile2));
        }
Esempio n. 3
0
        public void TestRotationalAddAdjacencies()
        {
            var model = new AdjacentModel(Directions.Cartesian2d);
            var tile1 = new Tile(1);
            var tile2 = new Tile(2);

            model.SetFrequency(tile1, 1);
            model.SetFrequency(tile2, 5);

            model.AddAdjacency(new[] { tile1 }, new[] { tile2 }, 1, 0, 0, 4, false);

            var patternModel = model.GetPatternModel();

            Assert.AreEqual(1, patternModel.Frequencies[0]);
            Assert.AreEqual(5, patternModel.Frequencies[1]);

            CollectionAssert.AreEquivalent(new[] { 1 }, patternModel.Propagator[0][0]);
            CollectionAssert.AreEquivalent(new[] { 1 }, patternModel.Propagator[0][1]);
            CollectionAssert.AreEquivalent(new[] { 1 }, patternModel.Propagator[0][2]);
            CollectionAssert.AreEquivalent(new[] { 1 }, patternModel.Propagator[0][3]);
            CollectionAssert.AreEquivalent(new[] { 0 }, patternModel.Propagator[1][0]);
            CollectionAssert.AreEquivalent(new[] { 0 }, patternModel.Propagator[1][1]);
            CollectionAssert.AreEquivalent(new[] { 0 }, patternModel.Propagator[1][2]);
            CollectionAssert.AreEquivalent(new[] { 0 }, patternModel.Propagator[1][3]);
        }
        public void TestSetFrequency()
        {
            var model = new AdjacentModel(Directions.Cartesian2d);

            model.SetFrequency(new Tile(1), 0.5);
            model.SetFrequency(new Tile(2), 2.0);

            var patternModel = model.GetPatternModel();

            Assert.AreEqual(0.5, patternModel.Frequencies[0]);
            Assert.AreEqual(2.0, patternModel.Frequencies[1]);
        }