public void CalculateArea_AllShapes() { //This is the refactored implementation that follows the OCP. var myCalc = new TotalAreaCalculator(); var myShapes = new List <Shape> { new Circle() { Radius = 4 }, new OCPRectangle() { Height = 4, Width = 3 }, new Triangle() { Height = 5, Width = 3 } }; Assert.AreEqual(69.77, Math.Round(myCalc.Area(myShapes), 2)); }
static void Main(string[] args) { var shapePlayground = new TotalAreaCalculator(); SquareShape square = new SquareShape(10); var circle = new CircleShape(1); Console.WriteLine("Square x = " + square.X + " / area = " + square.Area); Console.WriteLine("Circle radius = " + circle.Radius + " / area = " + circle.Area); Console.WriteLine("Total Area = " + shapePlayground.CalculateTotalArea(new IShape[] { square, circle })); shapePlayground.RescaleAllShapes(new IShape[] { square, circle }, 2.5); Console.WriteLine("Square x = " + square.X + " / area = " + square.Area); Console.WriteLine("Circle radius = " + circle.Radius + " / area = " + circle.Area); Console.WriteLine("Total Area = " + shapePlayground.CalculateTotalArea(new IShape[] { square, circle })); // ------------------------------------ bool done = false; do { Console.Clear(); Console.WriteLine("MENU (wybierz nr zadania)"); Console.WriteLine(); Console.WriteLine("(1) Weryfikacja numerów PESEL"); Console.WriteLine("(2) Wczytywanie określonej linijki pliku TXT"); Console.WriteLine(); Console.WriteLine("(0) Wyjście z programu"); Console.WriteLine(); var choiceKey = Console.ReadKey(); int choice; bool choiseParsed = int.TryParse(choiceKey.KeyChar.ToString(), out choice); if (choiseParsed) { if (choice == 1)// Weryfikacja numerów PESEL { done = true; PeselValidationChoice(); } else if (choice == 2)// Wczytywanie określonej linijki pliku TXT { done = true; FileReadingChoice(); } else if (choice == 0)// Zakończenie programu { done = true; } else { Console.WriteLine(); Console.WriteLine("Niepoprawny wybór! Naciśnij ENTER i spróbuj ponownie."); Console.ReadKey(); } } }while (!done); }