@@ -12,60 +12,78 @@ public class ShapeLTest
public void Test_Rotations()
{
// Init
ShapeL shapeL = new ShapeL(null);
ShapeL shapeLTest = new ShapeL(null);
IBoard board = new Board();
ShapeL sl = new ShapeL(board);
ShapeL slE = new ShapeL(board);

// First rotation
shapeLTest.blocks[0] = new Block(Color.Orange, new Point(0, 0), null);
shapeLTest.blocks[1] = new Block(Color.Orange, new Point(0, 1), null);
shapeLTest.blocks[2] = new Block(Color.Orange, new Point(0, 2), null);
shapeLTest.blocks[3] = new Block(Color.Orange, new Point(1, 2), null);
slE.blocks[0] = new Block(Color.Orange, new Point(0, 0), board);
slE.blocks[1] = new Block(Color.Orange, new Point(0, 1), board);
slE.blocks[2] = new Block(Color.Orange, new Point(0, 2), board);
slE.blocks[3] = new Block(Color.Orange, new Point(1, 2), board);

for (int i = 0; i < shapeL.blocks.Length; i++)
for (int i = 0; i < sl.blocks.Length; i++)
{
Assert.AreEqual(shapeLTest.blocks[i].Position, shapeL.blocks[i].Position);
Assert.AreEqual(slE.blocks[i].Position, sl.blocks[i].Position);
}

// Rotating
shapeL.Rotate();
sl.Rotate();

// Second rotation
shapeLTest.blocks[0] = new Block(Color.Orange, new Point(0, 0), null);
shapeLTest.blocks[1] = new Block(Color.Orange, new Point(0, 1), null);
shapeLTest.blocks[2] = new Block(Color.Orange, new Point(1, 0), null);
shapeLTest.blocks[3] = new Block(Color.Orange, new Point(2, 0), null);
slE.blocks[0] = new Block(Color.Orange, new Point(0, 0), board);
slE.blocks[1] = new Block(Color.Orange, new Point(0, 1), board);
slE.blocks[2] = new Block(Color.Orange, new Point(1, 0), board);
slE.blocks[3] = new Block(Color.Orange, new Point(2, 0), board);

for (int i = 0; i < shapeL.blocks.Length; i++)
for (int i = 0; i < sl.blocks.Length; i++)
{
Assert.AreEqual(shapeLTest.blocks[i].Position, shapeL.blocks[i].Position);
Assert.AreEqual(slE.blocks[i].Position, sl.blocks[i].Position);
}

// Rotating
shapeL.Rotate();
sl.Rotate();

// Third rotation
shapeLTest.blocks[0] = new Block(Color.Orange, new Point(1, 0), null);
shapeLTest.blocks[1] = new Block(Color.Orange, new Point(2, 0), null);
shapeLTest.blocks[2] = new Block(Color.Orange, new Point(2, 1), null);
shapeLTest.blocks[3] = new Block(Color.Orange, new Point(2, 2), null);
slE.blocks[0] = new Block(Color.Orange, new Point(1, 0), board);
slE.blocks[1] = new Block(Color.Orange, new Point(2, 0), board);
slE.blocks[2] = new Block(Color.Orange, new Point(2, 1), board);
slE.blocks[3] = new Block(Color.Orange, new Point(2, 2), board);

for (int i = 0; i < shapeL.blocks.Length; i++)
for (int i = 0; i < sl.blocks.Length; i++)
{
Assert.AreEqual(shapeLTest.blocks[i].Position, shapeL.blocks[i].Position);
Assert.AreEqual(slE.blocks[i].Position, sl.blocks[i].Position);
}

// Rotating
shapeL.Rotate();
sl.Rotate();

// Fourth rotation
shapeLTest.blocks[0] = new Block(Color.Orange, new Point(2, 0), null);
shapeLTest.blocks[1] = new Block(Color.Orange, new Point(2, 1), null);
shapeLTest.blocks[2] = new Block(Color.Orange, new Point(1, 1), null);
shapeLTest.blocks[3] = new Block(Color.Orange, new Point(0, 1), null);
slE.blocks[0] = new Block(Color.Orange, new Point(2, 0), board);
slE.blocks[1] = new Block(Color.Orange, new Point(2, 1), board);
slE.blocks[2] = new Block(Color.Orange, new Point(1, 1), board);
slE.blocks[3] = new Block(Color.Orange, new Point(0, 1), board);

for (int i = 0; i < shapeL.blocks.Length; i++)
for (int i = 0; i < sl.blocks.Length; i++)
{
Assert.AreEqual(shapeLTest.blocks[i].Position, shapeL.blocks[i].Position);
Assert.AreEqual(slE.blocks[i].Position, sl.blocks[i].Position);
}
}

[TestMethod]
public void Test_reset() //needs access to the board
{
// Init
IBoard board = new Board();
ShapeL sl = new ShapeL(board);
ShapeL slE = new ShapeL(board);

sl.Rotate();
sl.Reset();

for (int i = 0; i < sl.blocks.Length; i++)
{
Assert.AreEqual(slE.blocks[i].Position, sl.blocks[i].Position);
}
}
}
@@ -10,92 +10,17 @@ public class ShapeOTest
{
[TestMethod]
public void Test_Rotations()
{
// no need since its 2x2
}

[TestMethod]
public void Test_NoMove_MoveLeft()
{
// Init
ShapeO shapeO = new ShapeO(null);
ShapeO shapeOTest = new ShapeO(null);

// First rotation
shapeOTest.blocks[0] = new Block(Color.Yellow, new Point(0, 0), null);
shapeOTest.blocks[1] = new Block(Color.Yellow, new Point(1, 0), null);
shapeOTest.blocks[2] = new Block(Color.Yellow, new Point(0, 1), null);
shapeOTest.blocks[3] = new Block(Color.Yellow, new Point(1, 1), null);

for (int i = 0; i < shapeO.blocks.Length; i++)
{
Assert.AreEqual(shapeOTest.blocks[i].Position, shapeO.blocks[i].Position);
}
}

[TestMethod]
public void Test_MoveLeft()
{
ShapeO so = new ShapeO(null);
so.blocks[0] = new Block(Color.Aquamarine, new Point(1, 1), null);
so.blocks[1] = new Block(Color.Aquamarine, new Point(2, 1), null);
so.blocks[2] = new Block(Color.Aquamarine, new Point(1, 2), null);
so.blocks[3] = new Block(Color.Aquamarine, new Point(2, 2), null);

so.MoveLeft();
IBoard board = new Board();
ShapeO so = new ShapeO(board);
ShapeO soE = new ShapeO(board);

ShapeO soE = new ShapeO(null);
soE.blocks[0] = new Block(Color.Aquamarine, new Point(0, 1), null);
soE.blocks[1] = new Block(Color.Aquamarine, new Point(1, 1), null);
soE.blocks[2] = new Block(Color.Aquamarine, new Point(0, 2), null);
soE.blocks[3] = new Block(Color.Aquamarine, new Point(1, 2), null);

for (int i = 0; i < so.blocks.Length; i++)
{
Assert.AreEqual(soE.blocks[i].Position, so.blocks[i].Position);
}

}

[TestMethod]
public void Test_MoveRight()
{
ShapeO so = new ShapeO(null);
so.blocks[0] = new Block(Color.Aquamarine, new Point(1, 1), null);
so.blocks[1] = new Block(Color.Aquamarine, new Point(2, 1), null);
so.blocks[2] = new Block(Color.Aquamarine, new Point(1, 2), null);
so.blocks[3] = new Block(Color.Aquamarine, new Point(2, 2), null);

so.MoveRight();

ShapeO soE = new ShapeO(null);
soE.blocks[0] = new Block(Color.Aquamarine, new Point(2, 1), null);
soE.blocks[1] = new Block(Color.Aquamarine, new Point(3, 1), null);
soE.blocks[2] = new Block(Color.Aquamarine, new Point(2, 2), null);
soE.blocks[3] = new Block(Color.Aquamarine, new Point(3, 2), null);

for (int i = 0; i < so.blocks.Length; i++)
{
Assert.AreEqual(soE.blocks[i].Position, so.blocks[i].Position);
}
}

[TestMethod]
public void Test_NoMove_moveright()
{
ShapeO so = new ShapeO(null);
so.blocks[0] = new Block(Color.Aquamarine, new Point(9, 0), null);
so.blocks[1] = new Block(Color.Aquamarine, new Point(10, 0), null);
so.blocks[2] = new Block(Color.Aquamarine, new Point(9, 1), null);
so.blocks[3] = new Block(Color.Aquamarine, new Point(10, 1), null);

so.MoveRight();

ShapeO soE = new ShapeO(null);
soE.blocks[0] = new Block(Color.Aquamarine, new Point(9, 0), null);
soE.blocks[1] = new Block(Color.Aquamarine, new Point(10, 0), null);
soE.blocks[2] = new Block(Color.Aquamarine, new Point(9, 1), null);
soE.blocks[3] = new Block(Color.Aquamarine, new Point(10, 1), null);
// First rotation (initial)
soE.blocks[0] = new Block(Color.Yellow, new Point(0, 0), board);
soE.blocks[1] = new Block(Color.Yellow, new Point(1, 0), board);
soE.blocks[2] = new Block(Color.Yellow, new Point(0, 1), board);
soE.blocks[3] = new Block(Color.Yellow, new Point(1, 1), board);

for (int i = 0; i < so.blocks.Length; i++)
{
@@ -106,25 +31,18 @@ public void Test_NoMove_moveright()
[TestMethod]
public void Test_reset() //needs access to the board
{
ShapeO so = new ShapeO(null);
so.blocks[0] = new Block(Color.Aquamarine, new Point(0, 0), null);
so.blocks[1] = new Block(Color.Aquamarine, new Point(1, 0), null);
so.blocks[2] = new Block(Color.Aquamarine, new Point(0, 1), null);
so.blocks[3] = new Block(Color.Aquamarine, new Point(1, 1), null);
// Init
IBoard board = new Board();
ShapeO so = new ShapeO(board);
ShapeO soE = new ShapeO(board);

so.Rotate();
so.Reset();

ShapeO soE = new ShapeO(null);
soE.blocks[0] = new Block(Color.Aquamarine, new Point(0, 0), null);
soE.blocks[1] = new Block(Color.Aquamarine, new Point(1, 0), null);
soE.blocks[2] = new Block(Color.Aquamarine, new Point(0, 1), null);
soE.blocks[3] = new Block(Color.Aquamarine, new Point(1, 1), null);

for (int i = 0; i < so.blocks.Length; i++)
{
Assert.AreEqual(soE.blocks[i].Position, so.blocks[i].Position);
}
}

}
}
@@ -12,51 +12,55 @@ public class ShapeSTest
public void Test_Rotations()
{
// Init
ShapeS shapeS = new ShapeS(null);
ShapeS shapeSTest = new ShapeS(null);
IBoard board = new Board();
ShapeS ss = new ShapeS(board);
ShapeS ssE = new ShapeS(board);

// First rotation
shapeSTest.blocks[0] = new Block(Color.Tomato, new Point(0, 1), null);
shapeSTest.blocks[1] = new Block(Color.Tomato, new Point(1, 1), null);
shapeSTest.blocks[2] = new Block(Color.Tomato, new Point(1, 0), null);
shapeSTest.blocks[3] = new Block(Color.Tomato, new Point(2, 0), null);
ssE.blocks[0] = new Block(Color.Tomato, new Point(0, 1), board);
ssE.blocks[1] = new Block(Color.Tomato, new Point(1, 1), board);
ssE.blocks[2] = new Block(Color.Tomato, new Point(1, 0), board);
ssE.blocks[3] = new Block(Color.Tomato, new Point(2, 0), board);

for (int i = 0; i < shapeS.blocks.Length; i++)
for (int i = 0; i < ss.blocks.Length; i++)
{
Assert.AreEqual(shapeSTest.blocks[i].Position, shapeS.blocks[i].Position);
Assert.AreEqual(ssE.blocks[i].Position, ss.blocks[i].Position);
}

// Rotating
shapeS.Rotate();
ss.Rotate();

// Second rotation
shapeSTest.blocks[0] = new Block(Color.Tomato, new Point(0, 0), null);
shapeSTest.blocks[1] = new Block(Color.Tomato, new Point(0, 1), null);
shapeSTest.blocks[2] = new Block(Color.Tomato, new Point(1, 1), null);
shapeSTest.blocks[3] = new Block(Color.Tomato, new Point(1, 2), null);
ssE.blocks[0] = new Block(Color.Tomato, new Point(0, 0), board);
ssE.blocks[1] = new Block(Color.Tomato, new Point(0, 1), board);
ssE.blocks[2] = new Block(Color.Tomato, new Point(1, 1), board);
ssE.blocks[3] = new Block(Color.Tomato, new Point(1, 2), board);

for (int i = 0; i < shapeS.blocks.Length; i++)
for (int i = 0; i < ss.blocks.Length; i++)
{
Assert.AreEqual(shapeSTest.blocks[i].Position, shapeS.blocks[i].Position);
Assert.AreEqual(ssE.blocks[i].Position, ss.blocks[i].Position);
}
}

[TestMethod]
public void Test_NoMove_MoveLeft()
{
ShapeS ss = new ShapeS(null);
ss.blocks[0] = new Block(Color.Aquamarine, new Point(1, 0), null);
ss.blocks[1] = new Block(Color.Aquamarine, new Point(2, 0), null);
ss.blocks[2] = new Block(Color.Aquamarine, new Point(0, 1), null);
ss.blocks[3] = new Block(Color.Aquamarine, new Point(1, 1), null);
// Init
IBoard board = new Board();
ShapeS ss = new ShapeS(board);
ShapeS ssE = new ShapeS(board);

ss.blocks[0] = new Block(Color.Tomato, new Point(1, 0), board);
ss.blocks[1] = new Block(Color.Tomato, new Point(2, 0), board);
ss.blocks[2] = new Block(Color.Tomato, new Point(0, 1), board);
ss.blocks[3] = new Block(Color.Tomato, new Point(1, 1), board);

ss.MoveLeft();

ShapeS ssE = new ShapeS(null);
ssE.blocks[0] = new Block(Color.Aquamarine, new Point(1, 0), null);
ssE.blocks[1] = new Block(Color.Aquamarine, new Point(2, 0), null);
ssE.blocks[2] = new Block(Color.Aquamarine, new Point(0, 1), null);
ssE.blocks[3] = new Block(Color.Aquamarine, new Point(1, 1), null);
ssE.blocks[0] = new Block(Color.Tomato, new Point(1, 0), board);
ssE.blocks[1] = new Block(Color.Tomato, new Point(2, 0), board);
ssE.blocks[2] = new Block(Color.Tomato, new Point(0, 1), board);
ssE.blocks[3] = new Block(Color.Tomato, new Point(1, 1), board);

for (int i = 0; i < ss.blocks.Length; i++)
{
@@ -66,19 +70,22 @@ public void Test_NoMove_MoveLeft()
[TestMethod]
public void Test_MoveLeft()
{
ShapeS ss = new ShapeS(null);
ss.blocks[0] = new Block(Color.Aquamarine, new Point(2, 0), null);
ss.blocks[1] = new Block(Color.Aquamarine, new Point(3, 0), null);
ss.blocks[2] = new Block(Color.Aquamarine, new Point(1, 1), null);
ss.blocks[3] = new Block(Color.Aquamarine, new Point(2, 1), null);
// Init
IBoard board = new Board();
ShapeS ss = new ShapeS(board);
ShapeS ssE = new ShapeS(board);

ss.blocks[0] = new Block(Color.Tomato, new Point(2, 0), board);
ss.blocks[1] = new Block(Color.Tomato, new Point(3, 0), board);
ss.blocks[2] = new Block(Color.Tomato, new Point(1, 1), board);
ss.blocks[3] = new Block(Color.Tomato, new Point(2, 1), board);

ss.MoveLeft();

ShapeS ssE = new ShapeS(null);
ssE.blocks[0] = new Block(Color.Aquamarine, new Point(1, 0), null);
ssE.blocks[1] = new Block(Color.Aquamarine, new Point(2, 0), null);
ssE.blocks[2] = new Block(Color.Aquamarine, new Point(0, 1), null);
ssE.blocks[3] = new Block(Color.Aquamarine, new Point(1, 1), null);
ssE.blocks[0] = new Block(Color.Tomato, new Point(1, 0), board);
ssE.blocks[1] = new Block(Color.Tomato, new Point(2, 0), board);
ssE.blocks[2] = new Block(Color.Tomato, new Point(0, 1), board);
ssE.blocks[3] = new Block(Color.Tomato, new Point(1, 1), board);

for (int i = 0; i < ss.blocks.Length; i++)
{
@@ -89,19 +96,22 @@ public void Test_MoveLeft()
[TestMethod]
public void Test_NoMove_moveright()
{
ShapeS ss = new ShapeS(null);
ss.blocks[0] = new Block(Color.Aquamarine, new Point(9, 0), null);
ss.blocks[1] = new Block(Color.Aquamarine, new Point(10, 0), null);
ss.blocks[2] = new Block(Color.Aquamarine, new Point(8, 1), null);
ss.blocks[3] = new Block(Color.Aquamarine, new Point(9, 1), null);
// Init
IBoard board = new Board();
ShapeS ss = new ShapeS(board);
ShapeS ssE = new ShapeS(board);

ss.blocks[0] = new Block(Color.Tomato, new Point(9, 0), board);
ss.blocks[1] = new Block(Color.Tomato, new Point(10, 0), board);
ss.blocks[2] = new Block(Color.Tomato, new Point(8, 1), board);
ss.blocks[3] = new Block(Color.Tomato, new Point(9, 1), board);

ss.MoveRight();

ShapeS ssE = new ShapeS(null);
ssE.blocks[0] = new Block(Color.Aquamarine, new Point(9, 0), null);
ssE.blocks[1] = new Block(Color.Aquamarine, new Point(10, 0), null);
ssE.blocks[2] = new Block(Color.Aquamarine, new Point(8, 1), null);
ssE.blocks[3] = new Block(Color.Aquamarine, new Point(9, 1), null);
ssE.blocks[0] = new Block(Color.Tomato, new Point(9, 0), board);
ssE.blocks[1] = new Block(Color.Tomato, new Point(10, 0), board);
ssE.blocks[2] = new Block(Color.Tomato, new Point(8, 1), board);
ssE.blocks[3] = new Block(Color.Tomato, new Point(9, 1), board);

for (int i = 0; i < ss.blocks.Length; i++)
{
@@ -111,19 +121,22 @@ public void Test_NoMove_moveright()
[TestMethod]
public void Test_Moveright()
{
ShapeS ss = new ShapeS(null);
ss.blocks[0] = new Block(Color.Aquamarine, new Point(1, 0), null);
ss.blocks[1] = new Block(Color.Aquamarine, new Point(2, 0), null);
ss.blocks[2] = new Block(Color.Aquamarine, new Point(0, 1), null);
ss.blocks[3] = new Block(Color.Aquamarine, new Point(1, 1), null);
// Init
IBoard board = new Board();
ShapeS ss = new ShapeS(board);
ShapeS ssE = new ShapeS(board);

ss.blocks[0] = new Block(Color.Tomato, new Point(1, 0), board);
ss.blocks[1] = new Block(Color.Tomato, new Point(2, 0), board);
ss.blocks[2] = new Block(Color.Tomato, new Point(0, 1), board);
ss.blocks[3] = new Block(Color.Tomato, new Point(1, 1), board);

ss.MoveRight();

ShapeS ssE = new ShapeS(null);
ssE.blocks[0] = new Block(Color.Aquamarine, new Point(2, 0), null);
ssE.blocks[1] = new Block(Color.Aquamarine, new Point(3, 0), null);
ssE.blocks[2] = new Block(Color.Aquamarine, new Point(1, 1), null);
ssE.blocks[3] = new Block(Color.Aquamarine, new Point(2, 1), null);
ssE.blocks[0] = new Block(Color.Tomato, new Point(2, 0), board);
ssE.blocks[1] = new Block(Color.Tomato, new Point(3, 0), board);
ssE.blocks[2] = new Block(Color.Tomato, new Point(1, 1), board);
ssE.blocks[3] = new Block(Color.Tomato, new Point(2, 1), board);

for (int i = 0; i < ss.blocks.Length; i++)
{
@@ -135,74 +148,98 @@ public void Test_Moveright()
[TestMethod]
public void Test_MoveDown()
{
ShapeS ss = new ShapeS(null);
ss.blocks[0] = new Block(Color.Aquamarine, new Point(1, 0), null);
ss.blocks[1] = new Block(Color.Aquamarine, new Point(2, 0), null);
ss.blocks[2] = new Block(Color.Aquamarine, new Point(0, 1), null);
ss.blocks[3] = new Block(Color.Aquamarine, new Point(1, 1), null);
// Init
IBoard board = new Board();
ShapeS ss = new ShapeS(board);
ShapeS ssE = new ShapeS(board);

ss.blocks[0] = new Block(Color.Tomato, new Point(0, 1), board);
ss.blocks[0] = new Block(Color.Tomato, new Point(1, 1), board);
ss.blocks[0] = new Block(Color.Tomato, new Point(1, 0), board);
ss.blocks[0] = new Block(Color.Tomato, new Point(2, 0), board);

ss.MoveDown();

ShapeS ssE = new ShapeS(null);
ss.blocks[0] = new Block(Color.Aquamarine, new Point(1, 1), null);
ss.blocks[1] = new Block(Color.Aquamarine, new Point(2, 1), null);
ss.blocks[2] = new Block(Color.Aquamarine, new Point(0, 2), null);
ss.blocks[3] = new Block(Color.Aquamarine, new Point(1, 2), null);
ssE.blocks[0] = new Block(Color.Tomato, new Point(0, 2), board);
ssE.blocks[0] = new Block(Color.Tomato, new Point(1, 2), board);
ssE.blocks[0] = new Block(Color.Tomato, new Point(1, 1), board);
ssE.blocks[0] = new Block(Color.Tomato, new Point(2, 1), board);

for (int i = 0; i < ss.blocks.Length; i++)
{
Assert.AreEqual(ssE.blocks[i].Position, ss.blocks[i].Position);
Assert.AreEqual(ssE.blocks[i].Position, ssE.blocks[i].Position);
}
}

[TestMethod]
public void Test_NoMove_MoveDown()
{
ShapeS ss = new ShapeS(null);
ss.blocks[0] = new Block(Color.Aquamarine, new Point(1, 19), null);
ss.blocks[1] = new Block(Color.Aquamarine, new Point(2, 19), null);
ss.blocks[2] = new Block(Color.Aquamarine, new Point(0, 20), null);
ss.blocks[3] = new Block(Color.Aquamarine, new Point(1, 20), null);
// Init
IBoard board = new Board();
ShapeS ss = new ShapeS(board);
ShapeS ssE = new ShapeS(board);

ss.blocks[0] = new Block(Color.Tomato, new Point(0, 19), board);
ss.blocks[0] = new Block(Color.Tomato, new Point(1, 19), board);
ss.blocks[0] = new Block(Color.Tomato, new Point(1, 18), board);
ss.blocks[0] = new Block(Color.Tomato, new Point(2, 18), board);

ss.MoveDown();

ShapeS ssE = new ShapeS(null);
ssE.blocks[0] = new Block(Color.Aquamarine, new Point(1, 19), null);
ssE.blocks[1] = new Block(Color.Aquamarine, new Point(2, 19), null);
ssE.blocks[2] = new Block(Color.Aquamarine, new Point(0, 20), null);
ssE.blocks[3] = new Block(Color.Aquamarine, new Point(1, 20), null);
ssE.blocks[0] = new Block(Color.Tomato, new Point(0, 19), board);
ssE.blocks[0] = new Block(Color.Tomato, new Point(1, 19), board);
ssE.blocks[0] = new Block(Color.Tomato, new Point(1, 18), board);
ssE.blocks[0] = new Block(Color.Tomato, new Point(2, 18), board);

for (int i = 0; i < ss.blocks.Length; i++)
{
Assert.AreEqual(ssE.blocks[i].Position, ss.blocks[i].Position);
Assert.AreEqual(ssE.blocks[i].Position, ssE.blocks[i].Position);
}
}

[TestMethod]
public void Test_Drop() //needs access to the board
{
// Init
IBoard board = new Board();
ShapeS ss = new ShapeS(board);
ShapeS ssE = new ShapeS(board);

ss.blocks[0] = new Block(Color.Tomato, new Point(0, 1), board);
ss.blocks[0] = new Block(Color.Tomato, new Point(1, 1), board);
ss.blocks[0] = new Block(Color.Tomato, new Point(1, 0), board);
ss.blocks[0] = new Block(Color.Tomato, new Point(2, 0), board);

ss.Drop();

ssE.blocks[0] = new Block(Color.Tomato, new Point(0, 19), board);
ssE.blocks[0] = new Block(Color.Tomato, new Point(1, 19), board);
ssE.blocks[0] = new Block(Color.Tomato, new Point(1, 18), board);
ssE.blocks[0] = new Block(Color.Tomato, new Point(2, 18), board);

for (int i = 0; i < ss.blocks.Length; i++)
{
Assert.AreEqual(ssE.blocks[i].Position, ssE.blocks[i].Position);
}
}

[TestMethod]
public void Test_reset() //needs access to the board
{
ShapeS ss = new ShapeS(null);
ss.blocks[0] = new Block(Color.Aquamarine, new Point(1, 0), null);
ss.blocks[1] = new Block(Color.Aquamarine, new Point(2, 0), null);
ss.blocks[2] = new Block(Color.Aquamarine, new Point(0, 1), null);
ss.blocks[3] = new Block(Color.Aquamarine, new Point(1, 1), null);
// Init
IBoard board = new Board();
ShapeS ss = new ShapeS(board);
ShapeS ssE = new ShapeS(board);

ss.Rotate();
ss.Reset();

ShapeS ssE = new ShapeS(null);
ssE.blocks[0] = new Block(Color.Aquamarine, new Point(1, 0), null);
ssE.blocks[1] = new Block(Color.Aquamarine, new Point(2, 0), null);
ssE.blocks[2] = new Block(Color.Aquamarine, new Point(0, 1), null);
ssE.blocks[3] = new Block(Color.Aquamarine, new Point(1, 1), null);

for (int i = 0; i < ss.blocks.Length; i++)
{
Assert.AreEqual(ssE.blocks[i].Position, ss.blocks[i].Position);
}
}

}

}


@@ -12,60 +12,78 @@ public class ShapeTTest
public void Test_Rotations()
{
// Init
ShapeT shapeT = new ShapeT(null);
ShapeT shapeTTest = new ShapeT(null);
IBoard board = new Board();
ShapeT st = new ShapeT(board);
ShapeT stE = new ShapeT(board);

// First rotation
shapeTTest.blocks[0] = new Block(Color.Purple, new Point(0, 0), null);
shapeTTest.blocks[1] = new Block(Color.Purple, new Point(1, 0), null);
shapeTTest.blocks[2] = new Block(Color.Purple, new Point(2, 0), null);
shapeTTest.blocks[3] = new Block(Color.Purple, new Point(1, 1), null);
stE.blocks[0] = new Block(Color.Purple, new Point(0, 0), board);
stE.blocks[1] = new Block(Color.Purple, new Point(1, 0), board);
stE.blocks[2] = new Block(Color.Purple, new Point(2, 0), board);
stE.blocks[3] = new Block(Color.Purple, new Point(1, 1), board);

for (int i = 0; i < shapeT.blocks.Length; i++)
for (int i = 0; i < st.blocks.Length; i++)
{
Assert.AreEqual(shapeTTest.blocks[i].Position, shapeT.blocks[i].Position);
Assert.AreEqual(stE.blocks[i].Position, st.blocks[i].Position);
}

// Rotating
shapeT.Rotate();
st.Rotate();

// Second rotation
shapeTTest.blocks[0] = new Block(Color.Purple, new Point(0, 1), null);
shapeTTest.blocks[1] = new Block(Color.Purple, new Point(1, 0), null);
shapeTTest.blocks[2] = new Block(Color.Purple, new Point(1, 1), null);
shapeTTest.blocks[3] = new Block(Color.Purple, new Point(1, 2), null);
stE.blocks[0] = new Block(Color.Purple, new Point(0, 1), board);
stE.blocks[1] = new Block(Color.Purple, new Point(1, 0), board);
stE.blocks[2] = new Block(Color.Purple, new Point(1, 1), board);
stE.blocks[3] = new Block(Color.Purple, new Point(1, 2), board);

for (int i = 0; i < shapeT.blocks.Length; i++)
for (int i = 0; i < st.blocks.Length; i++)
{
Assert.AreEqual(shapeTTest.blocks[i].Position, shapeT.blocks[i].Position);
Assert.AreEqual(stE.blocks[i].Position, st.blocks[i].Position);
}

// Rotating
shapeT.Rotate();
st.Rotate();

// Third rotation
shapeTTest.blocks[0] = new Block(Color.Purple, new Point(1, 0), null);
shapeTTest.blocks[1] = new Block(Color.Purple, new Point(0, 1), null);
shapeTTest.blocks[2] = new Block(Color.Purple, new Point(1, 1), null);
shapeTTest.blocks[3] = new Block(Color.Purple, new Point(2, 1), null);
stE.blocks[0] = new Block(Color.Purple, new Point(1, 0), board);
stE.blocks[1] = new Block(Color.Purple, new Point(0, 1), board);
stE.blocks[2] = new Block(Color.Purple, new Point(1, 1), board);
stE.blocks[3] = new Block(Color.Purple, new Point(2, 1), board);

for (int i = 0; i < shapeT.blocks.Length; i++)
for (int i = 0; i < st.blocks.Length; i++)
{
Assert.AreEqual(shapeTTest.blocks[i].Position, shapeT.blocks[i].Position);
Assert.AreEqual(stE.blocks[i].Position, st.blocks[i].Position);
}

// Rotating
shapeT.Rotate();
st.Rotate();

// Fourth rotation
shapeTTest.blocks[0] = new Block(Color.Purple, new Point(0, 0), null);
shapeTTest.blocks[1] = new Block(Color.Purple, new Point(0, 1), null);
shapeTTest.blocks[2] = new Block(Color.Purple, new Point(1, 1), null);
shapeTTest.blocks[3] = new Block(Color.Purple, new Point(0, 2), null);
stE.blocks[0] = new Block(Color.Purple, new Point(0, 0), board);
stE.blocks[1] = new Block(Color.Purple, new Point(0, 1), board);
stE.blocks[2] = new Block(Color.Purple, new Point(1, 1), board);
stE.blocks[3] = new Block(Color.Purple, new Point(0, 2), board);

for (int i = 0; i < shapeT.blocks.Length; i++)
for (int i = 0; i < st.blocks.Length; i++)
{
Assert.AreEqual(shapeTTest.blocks[i].Position, shapeT.blocks[i].Position);
Assert.AreEqual(stE.blocks[i].Position, st.blocks[i].Position);
}
}

[TestMethod]
public void Test_reset() //needs access to the board
{
// Init
IBoard board = new Board();
ShapeT st = new ShapeT(board);
ShapeT stE = new ShapeT(board);

st.Rotate();
st.Reset();

for (int i = 0; i < st.blocks.Length; i++)
{
Assert.AreEqual(stE.blocks[i].Position, st.blocks[i].Position);
}
}
}
@@ -12,140 +12,29 @@ public class ShapeZTest
public void Test_Rotations()
{
// Init
ShapeZ shapeZ = new ShapeZ(null);
ShapeZ shapeZTest = new ShapeZ(null);
IBoard board = new Board();
ShapeZ sz = new ShapeZ(board);
ShapeZ szE = new ShapeZ(board);

// First rotation
shapeZTest.blocks[0] = new Block(Color.DarkGreen, new Point(0, 0), null);
shapeZTest.blocks[1] = new Block(Color.DarkGreen, new Point(1, 0), null);
shapeZTest.blocks[2] = new Block(Color.DarkGreen, new Point(1, 1), null);
shapeZTest.blocks[3] = new Block(Color.DarkGreen, new Point(2, 1), null);

for (int i = 0; i < shapeZ.blocks.Length; i++)
{
Assert.AreEqual(shapeZTest.blocks[i].Position, shapeZ.blocks[i].Position);
}

// Rotating
shapeZ.Rotate();

// Second rotation
shapeZTest.blocks[0] = new Block(Color.DarkGreen, new Point(0, 1), null);
shapeZTest.blocks[1] = new Block(Color.DarkGreen, new Point(0, 2), null);
shapeZTest.blocks[2] = new Block(Color.DarkGreen, new Point(1, 1), null);
shapeZTest.blocks[3] = new Block(Color.DarkGreen, new Point(1, 0), null);

for (int i = 0; i < shapeZ.blocks.Length; i++)
{
Assert.AreEqual(shapeZTest.blocks[i].Position, shapeZ.blocks[i].Position);
}
}

[TestMethod]
public void Test_NoMove_MoveLeft()
{
ShapeZ sz = new ShapeZ(null);
sz.blocks[0] = new Block(Color.Aquamarine, new Point(0, 0), null);
sz.blocks[1] = new Block(Color.Aquamarine, new Point(1, 0), null);
sz.blocks[2] = new Block(Color.Aquamarine, new Point(1, 1), null);
sz.blocks[3] = new Block(Color.Aquamarine, new Point(2, 1), null);

sz.MoveLeft();

ShapeO szE = new ShapeO(null);
szE.blocks[0] = new Block(Color.Aquamarine, new Point(0, 0), null);
szE.blocks[1] = new Block(Color.Aquamarine, new Point(1, 0), null);
szE.blocks[2] = new Block(Color.Aquamarine, new Point(1, 1), null);
szE.blocks[3] = new Block(Color.Aquamarine, new Point(2, 1), null);

for (int i = 0; i < sz.blocks.Length; i++)
{
Assert.AreEqual(szE.blocks[i].Position, sz.blocks[i].Position);
}
}
[TestMethod]
public void Test_MoveLeft()
{
ShapeZ sz = new ShapeZ(null);
sz.blocks[0] = new Block(Color.Aquamarine, new Point(1, 1), null);
sz.blocks[1] = new Block(Color.Aquamarine, new Point(2, 1), null);
sz.blocks[2] = new Block(Color.Aquamarine, new Point(2, 2), null);
sz.blocks[3] = new Block(Color.Aquamarine, new Point(3, 2), null);

sz.MoveLeft();

ShapeZ szE = new ShapeZ(null);
szE.blocks[0] = new Block(Color.Aquamarine, new Point(0, 1), null);
szE.blocks[1] = new Block(Color.Aquamarine, new Point(1, 1), null);
szE.blocks[2] = new Block(Color.Aquamarine, new Point(1, 2), null);
szE.blocks[3] = new Block(Color.Aquamarine, new Point(2, 2), null);
szE.blocks[0] = new Block(Color.DarkGreen, new Point(0, 0), board);
szE.blocks[1] = new Block(Color.DarkGreen, new Point(1, 0), board);
szE.blocks[2] = new Block(Color.DarkGreen, new Point(1, 1), board);
szE.blocks[3] = new Block(Color.DarkGreen, new Point(2, 1), board);

for (int i = 0; i < sz.blocks.Length; i++)
{
Assert.AreEqual(szE.blocks[i].Position, sz.blocks[i].Position);
}

}
[TestMethod]
public void Test_MoveRight()
{
ShapeZ sz = new ShapeZ(null);
sz.blocks[0] = new Block(Color.Aquamarine, new Point(1, 1), null);
sz.blocks[1] = new Block(Color.Aquamarine, new Point(2, 1), null);
sz.blocks[2] = new Block(Color.Aquamarine, new Point(2, 2), null);
sz.blocks[3] = new Block(Color.Aquamarine, new Point(3, 2), null);

sz.MoveRight();

ShapeZ szE = new ShapeZ(null);
szE.blocks[0] = new Block(Color.Aquamarine, new Point(2, 1), null);
szE.blocks[1] = new Block(Color.Aquamarine, new Point(3, 1), null);
szE.blocks[2] = new Block(Color.Aquamarine, new Point(3, 2), null);
szE.blocks[3] = new Block(Color.Aquamarine, new Point(4, 2), null);

for (int i = 0; i < sz.blocks.Length; i++)
{
Assert.AreEqual(szE.blocks[i].Position, sz.blocks[i].Position);
}
}
[TestMethod]
public void Test_NoMove_moveright()
{
ShapeZ sz = new ShapeZ(null);
sz.blocks[0] = new Block(Color.Aquamarine, new Point(8, 0), null);
sz.blocks[1] = new Block(Color.Aquamarine, new Point(9, 0), null);
sz.blocks[2] = new Block(Color.Aquamarine, new Point(9, 1), null);
sz.blocks[3] = new Block(Color.Aquamarine, new Point(10, 1), null);

sz.MoveRight();

ShapeZ szE = new ShapeZ(null);
szE.blocks[0] = new Block(Color.Aquamarine, new Point(8, 0), null);
szE.blocks[1] = new Block(Color.Aquamarine, new Point(9, 0), null);
szE.blocks[2] = new Block(Color.Aquamarine, new Point(9, 1), null);
szE.blocks[3] = new Block(Color.Aquamarine, new Point(10, 1), null);

for (int i = 0; i < sz.blocks.Length; i++)
{
Assert.AreEqual(szE.blocks[i].Position, sz.blocks[i].Position);
}
}
[TestMethod]
public void Test_MoveDown()
{
ShapeZ sz = new ShapeZ(null);
sz.blocks[0] = new Block(Color.Aquamarine, new Point(0, 0), null);
sz.blocks[1] = new Block(Color.Aquamarine, new Point(1, 0), null);
sz.blocks[2] = new Block(Color.Aquamarine, new Point(1, 1), null);
sz.blocks[3] = new Block(Color.Aquamarine, new Point(2, 1), null);

sz.MoveRight();
// Rotating
sz.Rotate();

ShapeZ szE = new ShapeZ(null);
szE.blocks[0] = new Block(Color.Aquamarine, new Point(1, 0), null);
szE.blocks[1] = new Block(Color.Aquamarine, new Point(2, 0), null);
szE.blocks[2] = new Block(Color.Aquamarine, new Point(2, 1), null);
szE.blocks[3] = new Block(Color.Aquamarine, new Point(3, 1), null);
// Second rotation
szE.blocks[0] = new Block(Color.DarkGreen, new Point(0, 1), board);
szE.blocks[1] = new Block(Color.DarkGreen, new Point(0, 2), board);
szE.blocks[2] = new Block(Color.DarkGreen, new Point(1, 1), board);
szE.blocks[3] = new Block(Color.DarkGreen, new Point(1, 0), board);

for (int i = 0; i < sz.blocks.Length; i++)
{
@@ -156,25 +45,18 @@ public void Test_MoveDown()
[TestMethod]
public void Test_reset() //needs access to the board
{
ShapeZ sz = new ShapeZ(null);
sz.blocks[0] = new Block(Color.Aquamarine, new Point(0, 0), null);
sz.blocks[1] = new Block(Color.Aquamarine, new Point(1, 0), null);
sz.blocks[2] = new Block(Color.Aquamarine, new Point(1, 1), null);
sz.blocks[3] = new Block(Color.Aquamarine, new Point(2, 1), null);
// Init
IBoard board = new Board();
ShapeZ sz = new ShapeZ(board);
ShapeZ szE = new ShapeZ(board);

sz.Rotate();
sz.Reset();

ShapeZ szE = new ShapeZ(null);
szE.blocks[0] = new Block(Color.Aquamarine, new Point(0, 0), null);
szE.blocks[1] = new Block(Color.Aquamarine, new Point(1, 0), null);
szE.blocks[2] = new Block(Color.Aquamarine, new Point(1, 1), null);
szE.blocks[3] = new Block(Color.Aquamarine, new Point(2, 1), null);

for (int i = 0; i < sz.blocks.Length; i++)
{
Assert.AreEqual(szE.blocks[i].Position, sz.blocks[i].Position);
}
}

}
}