/// <summary> /// Initializes a new instance of the <see cref="CalculatorBot"/> class. /// </summary> /// <param name="configuration">The current configuration.</param> /// <param name="arithmetic">Arithmetic operations DI.</param> /// <param name="calcChatBot">Calculator Chat Bot methods DI.</param> /// <param name="telemetryClient">ApplicationInsights DI.</param> /// <param name="statistics">Statistic operations DI.</param> /// <param name="geometrics">Geometric operations DI.</param> public CalculatorBot( IConfiguration configuration, IArithmetic arithmetic, ICalcChatBot calcChatBot, TelemetryClient telemetryClient, IStatistic statistics, IGeometric geometrics) { this.configuration = configuration; this.arithmetic = arithmetic; this.telemetryClient = telemetryClient; this.calcChatBot = calcChatBot; this.statistics = statistics; this.geometrics = geometrics; }
public void GetPerimeterTest() { var geoCal = new GeometricCalculator(); var geoThings = new IGeometric[] { new Triangle(3, 4, 5), new Square(10), new Circle(3) }; var actual = geoCal.GetPerimeter(geoThings); var expected = 12 + 40 + 18.85; Assert.AreEqual(expected, actual, 0.01); }
/// <summary> /// Genera una instancia del objeto de acuerdo a la cantidad de planetas que tiene el sistema. /// Actualemente soporta un sistems de 3 planetas pero eventualemente se podría extender el comportamiento para soporte de otros sistemas diferentes. /// Si el sistema tiene una cantidad de angulos distinta de tres se genera una excepcion Ad Hoc. /// </summary> /// <param name="planets">Referencia a los planetas de la galaxia</param> /// <returns></returns> public static IGeometric GetGeometric(List <Planet> planets) { IGeometric resultGeometric = null; switch (planets.Count) { case 3: resultGeometric = new Triangle(planets); break; default: throw new GeometricModelNotSupported(planets.Count); } return(resultGeometric); }