Пример #1
0
        public void SkapaYta(int index, Spelvärldsområde område)
        {
            if (område == null)
            {
                throw new ArgumentException("Rum måste ha ett område.");
            }
            if (område.Vänster == område.Höger)
            {
                throw new ArgumentException("Rum måste ha en bredd > 0.");
            }
            if (område.Botten == område.Topp)
            {
                throw new ArgumentException("Rum måste ha en höjd > 0.");
            }
            if (!new Spelvärldsområde(new Spelvärldsposition(0, 0), _spelvärldsyta).Omsluter(område))
            {
                throw new ArgumentException($"Rum {område.ToString()} måste placeras inom kartan {_spelvärldsyta.ToString()}.");
            }

            for (var x = område.Vänster; x < område.Höger; x++)
            {
                for (var y = område.Botten; y < område.Topp; y++)
                {
                    Karta.Indexar[x + y * _spelvärldsyta.Bredd] = index;
                }
            }
        }
Пример #2
0
        public void Kan_skapas_med_position_och_dimension()
        {
            var område = new Spelvärldsområde(new Spelvärldsposition(1, 2), new Spelvärldsyta(3, 4));

            Assert.That(område.Vänster, Is.EqualTo(1));
            Assert.That(område.Botten, Is.EqualTo(2));
            Assert.That(område.Höger, Is.EqualTo(4));
            Assert.That(område.Topp, Is.EqualTo(6));
        }
Пример #3
0
        public void Har_topp_botten_höger_vänster_från_yta_position()
        {
            var område = new Spelvärldsområde(new Spelvärldsposition(10, 20), new Spelvärldsyta(30, 40));

            Assert.That(område.Vänster, Is.EqualTo(10));
            Assert.That(område.Botten, Is.EqualTo(20));
            Assert.That(område.Höger, Is.EqualTo(40));
            Assert.That(område.Topp, Is.EqualTo(60));
        }
Пример #4
0
        public void Har_topp_botten_höger_vänster()
        {
            var område = new Spelvärldsområde(1, 2, 3, 4);

            Assert.That(område.Vänster, Is.EqualTo(1));
            Assert.That(område.Botten, Is.EqualTo(2));
            Assert.That(område.Höger, Is.EqualTo(3));
            Assert.That(område.Topp, Is.EqualTo(4));
        }
Пример #5
0
        public void Kan_skapas_som_1x1_område()
        {
            var område = new Spelvärldsområde(new Spelvärldsposition(0, 0), new Spelvärldsyta(1, 1));

            Assert.That(område.Vänster, Is.EqualTo(0));
            Assert.That(område.Botten, Is.EqualTo(0));
            Assert.That(område.Höger, Is.EqualTo(1));
            Assert.That(område.Topp, Is.EqualTo(1));
            // OBS, om man betraktar elementen som "ytor" är detta lite ointuitivt.
            // Då behöver man generellt se Höger och Topp som exklusiva [0, 1),
            // alltså att man loopar for(int x = Vänster; x < Höger; x++)    (Notera: x < Höger istf. x <= Höger)
        }
Пример #6
0
 public void Gör_undantag_för_om_topp_är_mindre_än_botten()
 {
     try
     {
         var område = new Spelvärldsområde(1, 4, 2, 3);
         Assert.Fail("Inget undantag gjordes.");
     }
     catch (ArgumentException undantag)
     {
         Assert.That(undantag.Message.ToLower(), Does.Contain("område"));
         Assert.That(undantag.Message.ToLower(), Does.Contain("botten"));
         Assert.That(undantag.Message.ToLower(), Does.Contain("topp"));
         Assert.That(undantag.Message.ToLower(), Does.Contain("3"));
         Assert.That(undantag.Message.ToLower(), Does.Contain("4"));
     }
 }
Пример #7
0
 public void Gör_undantag_för_om_höger_är_mindre_än_vänster()
 {
     try
     {
         var område = new Spelvärldsområde(4, 1, 3, 2);
         Assert.Fail("Inget undantag gjordes.");
     }
     catch (ArgumentException undantag)
     {
         Assert.That(undantag.Message.ToLower(), Does.Contain("område"));
         Assert.That(undantag.Message.ToLower(), Does.Contain("vänster"));
         Assert.That(undantag.Message.ToLower(), Does.Contain("höger"));
         Assert.That(undantag.Message.ToLower(), Does.Contain("3"));
         Assert.That(undantag.Message.ToLower(), Does.Contain("4"));
     }
 }