Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions BusinessLogic.Test/CostCalculatorTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
namespace BusinessLogic.Test;

[TestClass]
public class CostCalculatorTest
{
/*Una empresa de baldosas quiere programar un sistema para calcular los costos de sus trabajos.
Las baldosas pueden ser cuadradas o circulares. Además, pueden ser de uno de los siguientes
materiales: Cemento ($5) o Ladrillo ($10). El precio de cada baldosa se calcula como área de la
baldosa * precio del metro cuadrado * precio del material.

Modelar el problema usando TDD. El modelado debe tener una clase CostCalculator con un único
método el cual recibe dos parámetros: una lista de baldosas y el precio por metro cuadrado, y
devuelve el costo total.
*/
[TestMethod]
public void CalculateTotalCost_Valid()
{
//Arrange
List<Valdosa> valdosas = new List<Valdosa>
{
new Valdosa(1, 2, 4),
new Valdosa(2, 1, 2)
};
int precioMetroCuad = 5;

//Act
CostCalculator calc = new CostCalculator();
int totalCost = calc.Calculator(valdosas, precioMetroCuad);

//Assert
Assert.AreEqual(70, totalCost);

}


}
10 changes: 0 additions & 10 deletions BusinessLogic.Test/UnitTest1.cs

This file was deleted.

28 changes: 28 additions & 0 deletions BusinessLogic.Test/ValdosaTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
namespace BusinessLogic.Test;

public class ValdosaTest
{
[TestMethod]
public void NewValdosaTest()
{
// Arrange

//1 = circular
//2 = cuadrada
int tipo = 1;

//5 = cemento
//10 = ladrillo
int material = 5;

int tamano = 10; //radio o lado

// Act
Valdosa valdosa = new Valdosa(tipo, material, tamano);

// Assert
Assert.AreEqual(valdosa.Tipo, tipo);
Assert.AreEqual(material, valdosa.Material);
Assert.AreEqual(tamano, valdosa.Tamano);
}
}
5 changes: 0 additions & 5 deletions BusinessLogic/Class1.cs

This file was deleted.

26 changes: 26 additions & 0 deletions BusinessLogic/CostCalculator.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
namespace BusinessLogic;

public class CostCalculator
{
public int Calculator(List<Valdosa> valdosas, int precioMetroCuad)
{
int totalCost = 0;
foreach (var valdosa in valdosas)
{
int area = 0;
if (valdosa.Tipo == 1)
{
area = (int) (Math.PI * Math.Pow(valdosa.Tamano, 2));
}
else if (valdosa.Tipo == 2)
{
area = (int) Math.Pow(valdosa.Tamano, 2);
}

int cost = area * precioMetroCuad * valdosa.Material;
totalCost += cost;
}

return totalCost;
}
}
57 changes: 57 additions & 0 deletions BusinessLogic/Valdosa.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
namespace BusinessLogic;

public class Valdosa
{
private int _tipo;
private int _material;
private int _tamano;

public int Tipo
{
get => _tipo;
private set
{
if (value != 1 && value != 2)
{
throw new ArgumentException("Tipo must be 1(circular) or 2(cuadrada)");
}

_tipo = value;
}
}

public int Material
{
get => _material;
private set
{
if (value != 1 && value != 2)
{
throw new ArgumentException("Material must be 1(cemento) or 2(ladrillo)");
}

_material = value;
}
}

public int Tamano
{
get => _tamano;
private set
{
if (value <= 0)
{
throw new ArgumentException("Tamano must be greater than 0");
}

_tamano = value;
}
}

public Valdosa(int tipo, int material, int tamano)
{
Tipo = tipo;
Material = material;
Tamano = tamano;
}
}
28 changes: 28 additions & 0 deletions MySolution.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BusinessLogic", "BusinessLogic\BusinessLogic.csproj", "{0C1C8DC0-1478-495A-9414-09DD710EBD8A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BusinessLogic.Test", "BusinessLogic.Test\BusinessLogic.Test.csproj", "{D30881C1-4966-4AE6-8EB1-68887EE0BCED}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0C1C8DC0-1478-495A-9414-09DD710EBD8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0C1C8DC0-1478-495A-9414-09DD710EBD8A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0C1C8DC0-1478-495A-9414-09DD710EBD8A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0C1C8DC0-1478-495A-9414-09DD710EBD8A}.Release|Any CPU.Build.0 = Release|Any CPU
{D30881C1-4966-4AE6-8EB1-68887EE0BCED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D30881C1-4966-4AE6-8EB1-68887EE0BCED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D30881C1-4966-4AE6-8EB1-68887EE0BCED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D30881C1-4966-4AE6-8EB1-68887EE0BCED}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,11 @@ Una empresa de baldosas quiere programar un sistema para calcular los costos de
## Contestar en el README

5. ¿Qué archivo se modificó para lograr el ejercicio 2?

Cree el archivo MySolution.sln y a él le agregué los .csproj de cada proyecto.
6. En su código, ¿Qué pasa si alguien desea agregar un nuevo tipo de figura?

Para que funcione con estas modificaciones, se debería agregar un condicional más al método CalculateCost de la clase CostCalculator, para que sepa cómo calcular el área de la nueva figura.
7. Cuando usted compila su código, dotnet genera archivos .DLL, ¿Qué contienen esos archivos y cómo son usados por el CLR?

Los archivos .DLL contienen el código compilado de los proyectos. El CLR los usa para ejecutar el código.
14 changes: 13 additions & 1 deletion TryOut/Program.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
// See https://aka.ms/new-console-template for more information

Console.WriteLine("Hello, World!");
List<Valdosa> valdosas = new List<Valdosa>
{
new Valdosa(2, 5, 2),
new Valdosa(2, 5, 2),
new Valdosa(2, 5, 2),
new Valdosa(1, 10, 3)
};
int precioMetroCuad = 4;

CostCalculator calc = new CostCalculator();
int totalCost = calc.Calculator(valdosas, precioMetroCuad);
Console.WriteLine(totalCost);