private static IUnivers InitUnivers(int width, int height) { var u = new Univers2D(width, height); IElementFactory f = ChemicalElementFactory.GetInstance(); u += f.Create("Hydrogen", (int)(width * .3), (int)(height * .9), u); u[0].Displacement = new Vector(1, -1); u += f.Create("Carbone", (int)(width * .8), (int)(height * .2), u); u[1].Displacement = new Vector(1, 2); u += f.Create("Carbone", (int)(width * .7), (int)(height * .3), u); u[2].Displacement = new Vector(1, -1); u += f.Create("Helium", (int)(width * .3), (int)(height * .4), u); u[3].Displacement = new Vector(2, 2); u += f.Create("Lithium", (int)(width * .5), (int)(height * .4), u); u[4].Displacement = new Vector(-2, -1); u += f.Create("Oxygen", (int)(width * .3), (int)(height * .6), u); u[5].Displacement = new Vector(-1, -1); u += f.Create("Helium", (int)(width * .1), (int)(height * .7), u); u[6].Displacement = new Vector(2, 2); u += f.Create("Helium", (int)(width * .2), (int)(height * .8), u); u[7].Displacement = new Vector(2, 3); u += f.Create("Helium", (int)(width * .3), (int)(height * .5), u); u[8].Displacement = new Vector(1, 2); u += f.Create(new Atom[] { f.Create("Hydrogen"), f.Create("Hydrogen"), f.Create("Oxygen") }); u[9].MoveStrategy = new UnBoundedMovesStrategy(u); u[9].Displacement = new Vector(3, -2); return u; }
public void Test_Elements_Displacement() { // Initialisation IUnivers u = new Univers2D(50, 50); IElement e = ChemicalElementFactory.GetInstance().Create("Carbone"); Assert.AreEqual(e.Location.X, 0); Assert.AreEqual(e.Location.Y, 0); Assert.AreEqual(e.Displacement.X, 0); Assert.AreEqual(e.Displacement.Y, 0); // On déplace l'élément en passant par sa méthode e.MoveStrategy = new BoundedMovesStrategy(u); e.Displacement = new Vector(2, 5); e.UpdateLocation(); Assert.AreEqual(e.Location.X, 2); Assert.AreEqual(e.Location.Y, 5); Assert.AreEqual(e.Displacement.X, 2); Assert.AreEqual(e.Displacement.Y, 5); // On déplace l'élément en passant par sa stratégie e.MoveStrategy.ExecuteMove(e); Assert.AreEqual(e.Location.X, 4); Assert.AreEqual(e.Location.Y, 10); Assert.AreEqual(e.Displacement.X, 2); Assert.AreEqual(e.Displacement.Y, 5); }