Beispiel #1
0
        /// <summary>
        /// Actualiza el valor en un punto de la matriz
        /// </summary>
        /// <param name="puntoActualizar"></param>
        /// <returns></returns>
        public IMatrizDTO UpdateMatriz(IPuntoDTO puntoActualizar)
        {
            IMatrizDTO matriz = RecuperarJson();

            matriz.Matriz[puntoActualizar.x, puntoActualizar.y, puntoActualizar.z] = puntoActualizar.valor;
            GuardarJson(matriz);
            return(matriz);
        }
Beispiel #2
0
        public void TestMethod1()
        {
            IPuntoDTO pIni, pFin, pUpdate;
            MatrizBL  matrizBL  = new MatrizBL();
            long      respuesta = 0;

            pIni    = new IPuntoDTO();
            pFin    = new IPuntoDTO();
            pUpdate = new IPuntoDTO();

            //QUERY 1 1 1 3 3 3
            pIni.x = 1;
            pIni.y = 1;
            pIni.z = 1;

            pFin.x = 3;
            pFin.y = 3;
            pFin.z = 3;

            respuesta = matrizBL.QueryMatiz(pIni, pFin);
            Assert.AreEqual(4, respuesta);

            //UPDATE 1 1 1 23
            pUpdate.x     = 1;
            pUpdate.y     = 1;
            pUpdate.z     = 1;
            pUpdate.valor = 23;
            matrizBL.UpdateMatriz(pUpdate);

            //QUERY 2 2 2 4 4 4
            pIni.x = 2;
            pIni.y = 2;
            pIni.z = 2;

            pFin.x = 4;
            pFin.y = 4;
            pFin.z = 4;

            respuesta = matrizBL.QueryMatiz(pIni, pFin);
            Assert.AreEqual(4, respuesta);

            //QUERY 1 1 1 3 3 3
            pIni.x = 1;
            pIni.y = 1;
            pIni.z = 1;

            pFin.x = 3;
            pFin.y = 3;
            pFin.z = 3;

            respuesta = matrizBL.QueryMatiz(pIni, pFin);
            Assert.AreEqual(27, respuesta);
        }
Beispiel #3
0
        /// <summary>
        /// Metodo que suma los valors dentro de dos puntos en el cubo
        /// </summary>
        /// <param name="puntoInicial">Punto inicial</param>
        /// <param name="puntoFinal">Punto Final</param>
        /// <returns>La sma de los valores</returns>
        public long QueryMatiz(IPuntoDTO puntoInicial, IPuntoDTO puntoFinal)
        {
            long       respuesta = 0;
            IMatrizDTO matriz    = this.RecuperarJson();

            for (int i = puntoInicial.x; i <= puntoFinal.x; i++)
            {
                for (int j = puntoInicial.y; j <= puntoFinal.y; j++)
                {
                    for (int k = puntoInicial.z; k <= puntoFinal.z; k++)
                    {
                        respuesta += matriz.Matriz[i, j, k];
                    }
                }
            }
            return(respuesta);
        }
Beispiel #4
0
        /// <summary>
        /// Metodo que invoca la actulizacion de un punto en la Matriz
        /// </summary>
        /// <param name="matriz"></param>
        /// <param name="operador"></param>
        /// <returns></returns>
        private IMatrizDTO ActulizeMatriz(IMatrizDTO matriz, string operador)
        {
            int       number;
            long      valor;
            IPuntoDTO punto = new IPuntoDTO();

            String[] evaluar = operador.Split(' ');
            int.TryParse(evaluar[1], out number);
            punto.x = number;
            int.TryParse(evaluar[2], out number);
            punto.y = number;
            int.TryParse(evaluar[3], out number);
            punto.z = number;
            long.TryParse(evaluar[4], out valor);
            punto.valor = valor;

            matriz = _matrizBL.Value.UpdateMatriz(punto);
            return(matriz);
        }
Beispiel #5
0
        public void TestMethod1()
        {
            MatrizDAL  matrizDal = new MatrizDAL();
            Parametros parametro = new Parametros()
            {
                T = 2, N = 4, M = 5
            };
            IPuntoDTO punto;

            var matriz = matrizDal.Inicializar(parametro);

            punto       = new IPuntoDTO();
            punto.x     = 2;
            punto.y     = 2;
            punto.z     = 2;
            punto.valor = 4;

            var YYY = matrizDal.UpdateMatriz(punto);

            //Assert.AreEqual();
            var E = 2;
        }
Beispiel #6
0
        /// <summary>
        /// Metodo que invoca el query de en la Matriz
        /// </summary>
        /// <param name="operador"></param>
        private void QueryMatriz(string operador)
        {
            int       number;
            IPuntoDTO puntoIni = new IPuntoDTO();
            IPuntoDTO puntoFin = new IPuntoDTO();

            String[] evaluar = operador.Split(' ');
            int.TryParse(evaluar[1], out number);
            puntoIni.x = number;
            int.TryParse(evaluar[2], out number);
            puntoIni.y = number;
            int.TryParse(evaluar[3], out number);
            puntoIni.z = number;

            int.TryParse(evaluar[4], out number);
            puntoFin.x = number;
            int.TryParse(evaluar[5], out number);
            puntoFin.y = number;
            int.TryParse(evaluar[6], out number);
            puntoFin.z = number;
            long query = _matrizBL.Value.QueryMatiz(puntoIni, puntoFin);

            respuestas.Add(query);
        }
Beispiel #7
0
        /// <summary>
        /// Actualiza un punto en la matriz
        /// </summary>
        /// <param name="puntoActualizar"></param>
        /// <returns></returns>
        public IMatrizDTO UpdateMatriz(IPuntoDTO puntoActualizar)
        {
            IMatrizDTO matriz = _matrizDAL.Value.UpdateMatriz(puntoActualizar);

            return(matriz);
        }
Beispiel #8
0
 /// <summary>
 /// Metodo que no se implementa en la capa de persistencia
 /// </summary>
 /// <param name="puntoInicial"></param>
 /// <param name="puntoFinal"></param>
 /// <returns></returns>
 public long QueryMatiz(IPuntoDTO puntoInicial, IPuntoDTO puntoFinal)
 {
     throw new NotImplementedException();
 }