public void Multipliceras_med_yta(int bredd1, int höjd1, int bredd2, int höjd2, int resultatbredd, int resultathöjd) { var yta = new Skärmyta(bredd1, höjd1); var annanYta = new Skärmyta(bredd2, höjd2); Assert.That(yta.MultipliceratMed(annanYta), Is.EqualTo(new Skärmyta(resultatbredd, resultathöjd))); }
public void Är_likvärdig_med_annan_skärmyta_med_samma_dimensioner(int bredd, int höjd) { var yta = new Skärmyta(bredd, höjd); var likadanYta = new Skärmyta(bredd, höjd); Assert.That(yta.Equals(likadanYta), Is.True); }
public void Har_inte_samma_hashcode_som_vissa_andra_ytor(int bredd, int höjd, int annanBredd, int annanHöjd) { var yta = new Skärmyta(bredd, höjd); var annanYta = new Skärmyta(annanBredd, annanHöjd); Assert.That(yta.GetHashCode(), Is.Not.EqualTo(annanYta.GetHashCode())); }
public void Är_inte_likvärdig_med_annan_skärmyta_med_andra_dimensioner(int bredd, int höjd, int annanBredd, int annanHöjd) { var yta = new Skärmyta(bredd, höjd); var annanYta = new Skärmyta(annanBredd, annanHöjd); Assert.That(yta.Equals(annanYta), Is.False); }
public void Har_samma_hashcode_som_likadan_yta(int bredd, int höjd) { var yta = new Skärmyta(bredd, höjd); var likadanYta = new Skärmyta(bredd, höjd); Assert.That(yta.GetHashCode(), Is.EqualTo(likadanYta.GetHashCode())); }
public void Addera_position_med_yta(int x, int y, int bredd, int höjd, int resultatX, int resultatY) { var position = new Skärmposition(x, y); var yta = new Skärmyta(bredd, höjd); var resultat = position.Plus(yta); Assert.That(resultat, Is.EqualTo(new Skärmposition(resultatX, resultatY))); }
public void Beräknar_position_för_bricka_centrerad_i_botten(int brickbredd, int brickhöjd, int skärmbredd, int skärmhöjd, int x, int y) { var brickansDimensioner = new Skärmyta(brickbredd, brickhöjd); var skärmensDimensioner = new Skärmyta(skärmbredd, skärmhöjd); var brickansPosition = new Skärmposition(x, y); _skärm.ÄndraStorlek(skärmensDimensioner); Assert.That(_skärm.PositionCentreradIBotten(brickansDimensioner), Is.EqualTo(brickansPosition)); }
public void Har_samma_dimensioner_som_rutan_när_det_bara_är_en_ruta(int x, int y) { var gl = Substitute.For <IGrafikkommandon>(); var brickstorlek = new Skärmyta(x, y); var definitioner = new Bricka[] { new Bricka(gl, new Skärmposition(0, 0), brickstorlek) }; var fält = new Brickfält(definitioner, new int[] { 0 }, 1, brickstorlek); Assert.That(fält.Dimensioner, Is.EqualTo(new Skärmyta(x, y))); }
public Positionskonverterare(Skärmyta brickyta) { if (brickyta.Bredd < 1) { throw new ArgumentException($"Bredden för brickyta för positionskonverterare får inte vara mindre än 1 (angiven yta {brickyta.Bredd}x{brickyta.Höjd})."); } if (brickyta.Höjd < 1) { throw new ArgumentException($"Höjden för brickyta för positionskonverterare får inte vara mindre än 1 (angiven yta {brickyta.Bredd}x{brickyta.Höjd})."); } _brickyta = brickyta; }
public void Visa_enda_brickan_i_1x1_brickfält_på_position(int x, int y) { var gl = Substitute.For <IGrafikkommandon>(); var brickstorlek = new Skärmyta(1, 1); var definitioner = new Bricka[] { new Bricka(gl, new Skärmposition(0, 0), brickstorlek) }; var karta = new int[] { 0 }; var fält = new Brickfält(definitioner, karta, 1, brickstorlek); fält.Visa(new Skärmposition(x, y)); gl.Received().KopieraTexturrektangelTillRityta(0, 0, x, y, 1, 1); }
public void ÄndraStorlek(int bredd, int höjd) { var yta = new Skärmyta((int)(bredd / _scaleFactor), (int)(höjd / _scaleFactor)); _kamera.Dimensioner = yta; _skärm.ÄndraStorlek(yta); _gl.VäljProjektionmatris(); _gl.NollställMatris(); _gl.OrtogonalProjektion(0.0, bredd / _scaleFactor, 0.0, höjd / _scaleFactor, 0.0, 4.0); _gl.VäljModellmatris(); _gl.Visningsområde(0, 0, bredd, höjd); }
public void Har_samma_dimensioner_som_rutans_storlek_multiplicerad_med_kartans_dimensioner( int brickbredd, int brickhöjd, int antal, int kartbredd, int fältbredd, int fälthöjd) { var gl = Substitute.For <IGrafikkommandon>(); var brickstorlek = new Skärmyta(brickbredd, brickhöjd); var definitioner = new Bricka[] { new Bricka(gl, new Skärmposition(0, 0), brickstorlek) }; var karta = new int[antal]; var fält = new Brickfält(definitioner, karta, kartbredd, brickstorlek); Assert.That(fält.Dimensioner, Is.EqualTo(new Skärmyta(fältbredd, fälthöjd))); }
public Brickfält(Bricka[] definitioner, int[] karta, int kartbredd, Skärmyta brickstorlek) { _definitioner = definitioner ?? throw new ArgumentException("Brickfält kan inte skapas utan brickdefinition."); _karta = karta ?? throw new ArgumentException("Brickfält kan inte skapas utan karta."); _brickstorlek = brickstorlek ?? throw new ArgumentException("Brickfält kan inte skapas utan brickstorlek."); if (kartbredd < 1) { throw new ArgumentException("Brickfält kan inte ha en kartbredd mindre än 1."); } if (_karta.Count() < 1) { throw new ArgumentException("Brickfält måste ha en minst ett kartelement."); } _kartstorlek = new Skärmyta(kartbredd, karta.Count() / kartbredd); }
public void Visar_full_hälsomätare_när_huvudkaraktären_har_full_hälsa() { var hälsomätarram = Substitute.For <IGrafik>(); var hälsomätare = Substitute.For <IGradvisGrafik>(); var skärm = Substitute.For <ISkärm>(); var dimensioner = new Skärmyta(1, 2); var beräknadPosition = new Skärmposition(3, 4); hälsomätarram.Dimensioner.Returns(dimensioner); skärm.PositionCentreradIBotten(dimensioner).Returns(beräknadPosition); new VisaStatus(hälsomätarram, hälsomätare, new Huvudkaraktär(), skärm) .Visa(); hälsomätare.Received().Visa(beräknadPosition, new Andel(1.0)); }
public void Visar_två_brickor_i_1x2_brickfält() { var gl = Substitute.For <IGrafikkommandon>(); var brickstorlek = new Skärmyta(2, 2); var definitioner = new Bricka[] { new Bricka(gl, new Skärmposition(1, 2), brickstorlek), new Bricka(gl, new Skärmposition(3, 4), brickstorlek) }; var karta = new int[] { 0, 1 }; var fält = new Brickfält(definitioner, karta, 1, brickstorlek); fält.Visa(new Skärmposition(0, 0)); Received.InOrder(() => { gl.KopieraTexturrektangelTillRityta(1, 2, 0, 0, 2, 2); gl.KopieraTexturrektangelTillRityta(3, 4, 0, 2, 2, 2); }); }
public void Visar_brickfält_där_typ_bestäms_av_kartan() { var gl = Substitute.For <IGrafikkommandon>(); var definitioner = new Bricka[] { new Bricka(gl, new Skärmposition(4 * 1, 4 * 1), new Skärmyta(4, 4)), new Bricka(gl, new Skärmposition(4 * 2, 4 * 1), new Skärmyta(4, 4)) }; var brickstorlek = new Skärmyta(4, 4); var kartbredd = 2; var karta = new int[] { 0, 1 }; var fält = new Brickfält(definitioner, karta, kartbredd, brickstorlek); fält.Visa(new Skärmposition(0, 0)); Received.InOrder(() => { gl.KopieraTexturrektangelTillRityta(4, 4, 0, 0, 4, 4); gl.KopieraTexturrektangelTillRityta(8, 4, 4, 0, 4, 4); }); }
public Skärmområde(Skärmyta yta) : base(new Position(0, 0), yta) { }
public Bricka(IGrafikkommandon gl, Skärmposition texturPosition, Skärmyta dimensioner) { _gl = gl ?? throw new ArgumentException("Bricka kan inte skapas utan grafikkommando."); _texturPosition = texturPosition ?? throw new ArgumentException("Bricka kan inte skapas utan texturposition."); Dimensioner = dimensioner ?? throw new ArgumentException("Bricka kan inte skapas utan dimensioner."); }
public Skärmområde(Skärmposition position, Skärmyta yta) : base(position, yta) { }
public void Har_angiven_bredd() { var yta = new Skärmyta(2, 5); Assert.That(yta.Bredd, Is.EqualTo(2)); }
public void ÄndraStorlek(Skärmyta skärmyta) { _skärmyta = skärmyta; }
public Skärmposition PositionCentreradIBotten(Skärmyta dimensioner) { int x = (_skärmyta.Bredd - dimensioner.Bredd) / 2; return(new Skärmposition(x, 0)); }
public void Har_angiven_höjd() { var yta = new Skärmyta(2, 5); Assert.That(yta.Höjd, Is.EqualTo(5)); }