public void VerifyAreaHasHundredZones()
        {
            var terraFormingOptions = new TerraformingOptions();

            terraFormingOptions.SetZoneWidthAndHeight(100);
            var options = new AreaOptions(() => FakeLandValueCalculator.Instance, terraFormingOptions, TestCity.ProcessOptions, () => MockRepository.GenerateMock <ICityServiceStrengthLevels>());

            var area = new Area(options);

            options.WithTerraformingOptions(x =>
            {
                Assert.AreEqual(x.ZoneWidthAndHeight, area.AmountOfZonesX);
                Assert.AreEqual(x.ZoneWidthAndHeight, area.AmountOfZonesY);
            });
        }
        public void VerifyClusterConsumption()
        {
            var terraFormingOptions = new TerraformingOptions();

            terraFormingOptions.SetZoneWidthAndHeight(100);
            var options = new AreaOptions(() => FakeLandValueCalculator.Instance, terraFormingOptions, TestCity.ProcessOptions, () => MockRepository.GenerateMock <ICityServiceStrengthLevels>());
            var area    = new Area(options);

            var predicate = new Func <IZoneInfo, bool>(x => x.Point.X == 2 && x.Point.Y == 4);
            var firstZone = area.EnumerateZoneInfos().Single(predicate);

            Assert.IsTrue(area.EnumerateZoneInfos().Single(predicate).ConsumptionState.GetZoneConsumption() is EmptyZoneConsumption);
            area.ConsumeZoneAt(firstZone, new ResidentialZoneClusterConsumption(() => new ZoneInfoFinder(null)));

            Assert.IsTrue(area.EnumerateZoneInfos().Single(predicate).ConsumptionState.GetZoneConsumption() is ZoneClusterMemberConsumption);
        }
        public void VerifyAreaInitiallyHasNoZoneConsumption()
        {
            var terraFormingOptions = new TerraformingOptions();

            terraFormingOptions.SetZoneWidthAndHeight(100);
            var options = new AreaOptions(() => FakeLandValueCalculator.Instance, terraFormingOptions, TestCity.ProcessOptions, () => MockRepository.GenerateMock <ICityServiceStrengthLevels>());

            var area = new Area(options);

            options.WithTerraformingOptions(x =>
            {
                Assert.AreEqual(
                    expected: x.ZoneWidthAndHeight * x.ZoneWidthAndHeight,
                    actual: area
                    .EnumerateZoneInfos()
                    .Count(y => y.ConsumptionState.GetZoneConsumption() is EmptyZoneConsumption)
                    );
            });
        }
Exemplo n.º 4
0
 public ModularityArea(AreaOptions options, bool isDefaultArea = false)
 {
     Options       = options;
     Modules       = new List <ModularityModule>();
     IsDefaultArea = isDefaultArea;
 }