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