public Resultado GetClima(int dia) { if (Trigonometry.Colinealidad(_planetas[0].GetPosicion(dia), _planetas[1].GetPosicion(dia), _planetas[2].GetPosicion(dia), _deltaColinealidad)) { // Si los 3 planetas están en linea, reemplazo cualquiera de ellos por el sol, y verifico si tmb están en linea. if (Trigonometry.Colinealidad(_planetas[0].GetPosicion(dia), _planetas[1].GetPosicion(dia), _sol.GetPosicion(dia), _deltaColinealidad)) { return new Resultado { Dia = dia, Clima = Constants.Sequia, Lluvia = 0 } } ; return(new Resultado { Dia = dia, Clima = Constants.Optimo, Lluvia = 0 }); } if (Trigonometry.PuntoEnTriangulo(_planetas[0].GetPosicion(dia), _planetas[1].GetPosicion(dia), _planetas[2].GetPosicion(dia), _sol.GetPosicion(dia))) { return(new Resultado { Dia = dia, Clima = Constants.Lluvia, Lluvia = Trigonometry.GetPerimetro(_planetas[0].GetPosicion(dia), _planetas[1].GetPosicion(dia), _planetas[2].GetPosicion(dia)) }); } return(new Resultado { Dia = dia, Clima = Constants.Confuso, Lluvia = 0 }); } }
public void TresEnLineaFailTest() { var pplaneta0 = new Posicion { X = 5, Y = 111 }; var pplaneta1 = new Posicion { X = 200, Y = -100 }; var pplaneta2 = new Posicion { X = -250, Y = 100 }; var result = Trigonometry.Colinealidad(pplaneta0, pplaneta1, pplaneta2, delta); Assert.AreEqual(false, result, "No están en linea."); }
public void CuatroEnLinea2Test() { var pplaneta0 = new Posicion { X = -1000, Y = 0 }; var pplaneta1 = new Posicion { X = 500, Y = 0 }; var pplaneta2 = new Posicion { X = 2000, Y = 0 }; var pSol = new Posicion { X = 0, Y = 0 }; var result1 = Trigonometry.Colinealidad(pplaneta0, pplaneta1, pplaneta2, delta); var result2 = Trigonometry.Colinealidad(pplaneta0, pplaneta1, pSol, delta); Assert.AreEqual(true, result1 && result2, "Los 4 están en linea."); }