public void WorkerDeleteBaggage() { var robot = CreateWorkerRobot(); Stone stone = new ValuableStone(Convert.ToDouble(10)); stone = new PoisonedStone(5, stone); var res = robot.AddStone(stone); res = robot.AddStone(stone); Assert.AreEqual(robot.Baggage.Count, 2); Assert.AreEqual(robot.GetBaggageInfo(), "Total weight: " + 20 + ", total cost: " + 40 + ", free space: " + 180); res = robot.DropStone(); Assert.AreEqual(res, "Succesfully droped: " + stone.GetInfo()); Assert.AreEqual(robot.Baggage.Count, 1); res = robot.DropStone(); Assert.AreEqual(res, "Succesfully droped: " + stone.GetInfo()); Assert.AreEqual(robot.Baggage.Count, 0); res = robot.DropStone(); Assert.AreEqual(res, "Baggage already empty"); Assert.AreEqual(robot.Baggage.Count, 0); }
private Stone StoneGenerator() { Stone stone; if (rand.Next(3) > 0) { stone = new OrdinaryStone(); } else { stone = new ValuableStone(Convert.ToDouble(rand.Next(1, 100)) / 10); if (rand.Next(5) == 0) { stone = new DecryptionStone(stone); } if (rand.Next(6) == 0) { stone = new CollapseStone(rand.Next(1, 15), stone); } if (rand.Next(8) == 0) { stone = new PoisonedStone(rand.Next(1, 10), stone); } } return(stone); }
public void CyborgDeadByPoison() { var robot = CreateCyborgRobot(); Stone stone = new ValuableStone(Convert.ToDouble(110)); stone = new PoisonedStone(110, stone); var res = robot.AddStone(stone); Assert.AreEqual(res, "You are dead (9((9"); }
public void ValuableStoneTest() { Stone stone = new ValuableStone(5); Assert.AreEqual(stone.GetInfo(), "Cost: " + 5 + ", weight: " + 5 + ", description: Valuable stone"); Assert.AreEqual(stone.Weight, 5); Assert.AreEqual(stone.StoneHealth, 0); Assert.AreEqual(stone.Collapses, false); Assert.AreEqual(stone.Decryption, false); Assert.AreEqual(stone.GetCost(), stone.Weight); Assert.AreEqual(stone.Damage, 0); Assert.AreEqual(stone.Description, "Valuable stone"); }
public void PoisonedStoneTest() { Stone stone = new ValuableStone(5); stone = new PoisonedStone(5, stone); Assert.AreEqual(stone.GetInfo(), "Cost: " + 10 + ", weight: " + 5 + ", description: Valuable stone, will harm on every turn (ciborgs only), damage: " + 5); Assert.AreEqual(stone.Weight, 5); Assert.AreEqual(stone.StoneHealth, 0); Assert.AreEqual(stone.Collapses, false); Assert.AreEqual(stone.Decryption, false); Assert.AreEqual(stone.GetCost(), stone.Weight * 2); Assert.AreEqual(stone.Damage, 5); Assert.AreEqual(stone.Description, "Valuable stone, will harm on every turn (ciborgs only)"); }
public void DecryptionStoneTest() { Stone stone = new ValuableStone(5); stone = new DecryptionStone(stone); Assert.AreEqual(stone.GetInfo(), "Cost: " + 12.5 + ", weight: " + 5 + ", description: Valuable stone, need to be decrypted"); Assert.AreEqual(stone.Weight, 5); Assert.AreEqual(stone.StoneHealth, 0); Assert.AreEqual(stone.Collapses, false); Assert.AreEqual(stone.Decryption, true); Assert.AreEqual(stone.GetCost(), stone.Weight * 2.5); Assert.AreEqual(stone.Damage, 0); Assert.AreEqual(stone.Description, "Valuable stone, need to be decrypted"); }
public void ScientistDecryptedStoneComplete() { var robot = CreateScientistRobot(); List <Stone> stones = new List <Stone>(); for (int i = 0; i < 100; i++) { Stone stone = new ValuableStone(Convert.ToDouble(0.1)); stone = new DecryptionStone(stone); stones.Add(stone); var res = robot.AddStone(stone); } Assert.IsTrue(robot.Baggage.Count == 100); }
public void WorkerDecryptedStoneFails() { var robot = CreateWorkerRobot(); List <Stone> stones = new List <Stone>(); for (int i = 0; i < 100; i++) { Stone stone = new ValuableStone(Convert.ToDouble(1)); stone = new DecryptionStone(stone); stones.Add(stone); var res = robot.AddStone(stone); } Assert.IsTrue(robot.Baggage.Count < 100); }
public void ScientistTurnCheck() { var robot = CreateScientistRobot(); Assert.AreEqual(robot.BatteryCharge, 50); var res = robot.Turn(); Assert.AreEqual(res, "Battery charge: " + 49 + ", battery lost: " + 1 + ", "); Stone stone = new ValuableStone(Convert.ToDouble(10)); stone = new PoisonedStone(5, stone); res = robot.AddStone(stone); Assert.AreEqual(res, stone.GetInfo() + "\r\n Succesfully added"); }
public void RobotCollapsedStoneDrop() { var robot = CreateWorkerRobot(); Stone stone = new ValuableStone(Convert.ToDouble(10)); stone = new CollapseStone(1, stone); var res = robot.AddStone(stone); Assert.AreEqual(res, stone.GetInfo() + "\r\n Succesfully added"); Assert.AreEqual(robot.Baggage.Count, 1); Assert.AreEqual(robot.GetBaggageInfo(), "Total weight: " + 10 + ", total cost: " + 15 + ", free space: " + 190); res = robot.Turn(); Assert.AreEqual(res, "Battery charge: " + 98 + ", battery lost: " + 2 + ", " + "Was droped(collapse destroy it). " + stone.GetInfo()); Assert.AreEqual(robot.Baggage.Count, 0); Assert.AreEqual(robot.GetBaggageInfo(), "Total weight: " + 0 + ", total cost: " + 0 + ", free space: " + 200); }
public void CollapseStoneTest() { Stone stone = new ValuableStone(5); stone = new CollapseStone(5, stone); Assert.AreEqual(stone.GetInfo(), "Cost: " + 7.5 + ", weight: " + 5 + ", description: Valuable stone, will destroy on every turn, stone health: " + 5); Assert.AreEqual(stone.Weight, 5); Assert.AreEqual(stone.StoneHealth, 5); Assert.AreEqual(stone.Collapses, true); Assert.AreEqual(stone.Decryption, false); Assert.AreEqual(stone.GetCost(), stone.Weight * 1.5); Assert.AreEqual(stone.Damage, 0); Assert.AreEqual(stone.Description, "Valuable stone, will destroy on every turn"); stone.DecreaseHealth(); Assert.AreEqual(stone.StoneHealth, 4); }
public void WorkerAddBaggage() { var robot = CreateWorkerRobot(); Stone stone = new ValuableStone(Convert.ToDouble(10)); stone = new PoisonedStone(5, stone); var res = robot.AddStone(stone); Assert.AreEqual(res, stone.GetInfo() + "\r\n Succesfully added"); Assert.AreEqual(robot.Baggage.Count, 1); Assert.AreEqual(robot.GetBaggageInfo(), "Total weight: " + 10 + ", total cost: " + 20 + ", free space: " + 190); res = robot.AddStone(stone); Assert.AreEqual(res, stone.GetInfo() + "\r\n Succesfully added"); Assert.AreEqual(robot.Baggage.Count, 2); Assert.AreEqual(robot.GetBaggageInfo(), "Total weight: " + 20 + ", total cost: " + 40 + ", free space: " + 180); }
public void CyborgTurnCheck() { var robot = CreateCyborgRobot(); Assert.AreEqual(robot.BatteryCharge, 70); var res = robot.Turn(); Assert.AreEqual(res, "Turns harm: " + 0 + ", battery charge: " + 69 + ", battery lost: " + 1 + ", "); Stone stone = new ValuableStone(Convert.ToDouble(10)); stone = new PoisonedStone(5, stone); res = robot.AddStone(stone); Assert.AreEqual(res, stone.GetInfo() + "\r\n Succesfully added"); res = robot.Turn(); Assert.AreEqual(res, "Turns harm: " + 5 + ", battery charge: " + 67 + ", battery lost: " + 2 + ", "); }
public void PoisonedCollapsedStoneTest() { Stone stone = new ValuableStone(5); stone = new PoisonedStone(5, stone); stone = new CollapseStone(5, stone); Assert.AreEqual(stone.GetInfo(), "Cost: " + 15 + ", weight: " + 5 + ", description: Valuable stone" + ", will harm on every turn (ciborgs only), will destroy on every turn, stone health: " + 5 + ", damage: " + 5); Assert.AreEqual(stone.Weight, 5); Assert.AreEqual(stone.StoneHealth, 5); Assert.AreEqual(stone.Collapses, true); Assert.AreEqual(stone.Decryption, false); Assert.AreEqual(stone.GetCost(), stone.Weight * 3); Assert.AreEqual(stone.Damage, 5); Assert.AreEqual(stone.Description, "Valuable stone, will harm on every turn (ciborgs only), will destroy on every turn"); stone.DecreaseHealth(); Assert.AreEqual(stone.StoneHealth, 4); }
public void DecryptionCollapsedStoneTest() { Stone stone = new ValuableStone(5); stone = new CollapseStone(5, stone); stone = new DecryptionStone(stone); Assert.AreEqual(stone.GetInfo(), "Cost: " + 18.75 + ", weight: " + 5 + ", description: Valuable stone" + ", will destroy on every turn, need to be decrypted, stone health: " + 5); Assert.AreEqual(stone.Weight, 5); Assert.AreEqual(stone.StoneHealth, 5); Assert.AreEqual(stone.Collapses, true); Assert.AreEqual(stone.Decryption, true); Assert.AreEqual(stone.GetCost(), stone.Weight * 3.75); Assert.AreEqual(stone.Damage, 0); Assert.AreEqual(stone.Description, "Valuable stone, will destroy on every turn, need to be decrypted"); stone.DecreaseHealth(); Assert.AreEqual(stone.StoneHealth, 4); }
public void CyborgAddBaggage() { var robot = CreateCyborgRobot(); Stone stone = new ValuableStone(Convert.ToDouble(10)); stone = new PoisonedStone(5, stone); var res = robot.AddStone(stone); Assert.AreEqual(res, stone.GetInfo() + "\r\n Succesfully added"); Assert.AreEqual(robot.Baggage.Count, 1); Assert.AreEqual(robot.GetBaggageInfo(), "Total weight: " + 10 + ", total cost: " + 20 + ", free space: " + 125 + ", damage per turn: " + 5 + ", current hp: " + 100); res = robot.AddStone(stone); Assert.AreEqual(res, stone.GetInfo() + "\r\n Succesfully added"); Assert.AreEqual(robot.Baggage.Count, 2); Assert.AreEqual(robot.GetBaggageInfo(), "Total weight: " + 20 + ", total cost: " + 40 + ", free space: " + 115 + ", damage per turn: " + 10 + ", current hp: " + 100); }