コード例 #1
0
        public void TestConjuntoStrings()
        {
            Conjunto <String> conjuntoStrings = new Conjunto <String>("h", "e", "l", "l", "o");

            Assert.AreEqual(4, conjuntoStrings.NumeroElementos,
                            "El constructor del conjunto funciona mal con Strings");
            Assert.AreEqual("{h, e, l, o}", conjuntoStrings.ToString(),
                            "El constructor del conjunto funciona mal con Strings.");

            conjuntoStrings.AddLast("!");
            Assert.AreEqual(5, conjuntoStrings.NumeroElementos,
                            "El método AddLast() del conjunto funciona mal con Strings");
            Assert.AreEqual("{h, e, l, o, !}", conjuntoStrings.ToString(),
                            "El método AddLast() del conjunto funciona mal con Strings.");

            conjuntoStrings.RemoveFirst();
            Assert.AreEqual(4, conjuntoStrings.NumeroElementos,
                            "El método RemoveFirst() del conjunto funciona mal con Strings");
            Assert.AreEqual("{e, l, o, !}", conjuntoStrings.ToString(),
                            "El método RemoveFirst() del conjunto funciona mal con Strings.");

            Assert.AreEqual("e", conjuntoStrings.Get(0),
                            "El método Get() del conjunto funciona mal con Strings");

            Assert.AreEqual(true, conjuntoStrings.Contains("l"),
                            "El método Contains() del conjunto funciona mal con Strings");
            Assert.AreEqual(false, conjuntoStrings.Contains("k"),
                            "El método Contains() del conjunto funciona mal con Strings");
        }
コード例 #2
0
        public void TestConjuntoPersonas()
        {
            Conjunto <Persona> conjuntoStrings = new Conjunto <Persona>(
                new Persona("Carlos", "Sanabria", "Miranda", "12345678A"));

            Assert.AreEqual(1, conjuntoStrings.NumeroElementos,
                            "El constructor del conjunto funciona mal con Personas");
            Assert.AreEqual("{Carlos Sanabria Miranda con NIF 12345678A}", conjuntoStrings.ToString(),
                            "El constructor del conjunto funciona mal con Personas.");

            conjuntoStrings.AddLast(new Persona("Pedro", "Pérez", "Allende", "12345678B"));
            Assert.AreEqual(2, conjuntoStrings.NumeroElementos,
                            "El método AddLast() del conjunto funciona mal con Personas");
            Assert.AreEqual("{Carlos Sanabria Miranda con NIF 12345678A, " +
                            "Pedro Pérez Allende con NIF 12345678B}", conjuntoStrings.ToString(),
                            "El método AddLast() del conjunto funciona mal con Personas.");

            conjuntoStrings.RemoveFirst();
            Assert.AreEqual(1, conjuntoStrings.NumeroElementos,
                            "El método RemoveFirst() del conjunto funciona mal con Personas");
            Assert.AreEqual("{Pedro Pérez Allende con NIF 12345678B}", conjuntoStrings.ToString(),
                            "El método RemoveFirst() del conjunto funciona mal con Personas.");

            Assert.AreEqual("Pedro Pérez Allende con NIF 12345678B", conjuntoStrings.Get(0).ToString(),
                            "El método Get() del conjunto funciona mal con Personas");

            Assert.AreEqual(true, conjuntoStrings.Contains(
                                new Persona("Pedro", "Pérez", "Allende", "12345678B")),
                            "El método Contains() del conjunto funciona mal con Personas");
            Assert.AreEqual(false, conjuntoStrings.Contains(
                                new Persona("Luis", "Pérez", "Allende", "12345678B")),
                            "El método Contains() del conjunto funciona mal con Personas");
        }
コード例 #3
0
        public void TestConjuntoDoubles()
        {
            Conjunto <double> conjuntoStrings = new Conjunto <double>(1.1, 2.2, 3.3);

            Assert.AreEqual(3, conjuntoStrings.NumeroElementos,
                            "El constructor del conjunto funciona mal con doubles.");
            Assert.AreEqual("{1,1, 2,2, 3,3}", conjuntoStrings.ToString(),
                            "El constructor del conjunto funciona mal con doubles.");

            conjuntoStrings.AddLast(4.4);
            Assert.AreEqual(4, conjuntoStrings.NumeroElementos,
                            "El método AddLast() del conjunto funciona mal con doubles.");
            Assert.AreEqual("{1,1, 2,2, 3,3, 4,4}", conjuntoStrings.ToString(),
                            "El método AddLast() del conjunto funciona mal con doubles.");

            conjuntoStrings.RemoveFirst();
            Assert.AreEqual(3, conjuntoStrings.NumeroElementos,
                            "El método RemoveFirst() del conjunto funciona mal con doubles.");
            Assert.AreEqual("{2,2, 3,3, 4,4}", conjuntoStrings.ToString(),
                            "El método RemoveFirst() del conjunto funciona mal con doubles.");

            Assert.AreEqual(2.2, conjuntoStrings.Get(0),
                            "El método Get() del conjunto funciona mal con doubles.");

            Assert.AreEqual(true, conjuntoStrings.Contains(3.3),
                            "El método Contains() del conjunto funciona mal con doubles.");
            Assert.AreEqual(false, conjuntoStrings.Contains(5.5),
                            "El método Contains() del conjunto funciona mal con doubles.");
        }
コード例 #4
0
        public void TestConjuntoAdd()
        {
            conjunto = new Conjunto <int>(0, 1, 2);

            conjunto.Add(1, 4);
            Assert.AreEqual(4, conjunto.NumeroElementos,
                            "Añadir un elemento (no repetido) en medio a un conjunto con 3 elementos no incrementa el número de elementos a 4.");
            Assert.AreEqual("{0, 4, 1, 2}", conjunto.ToString(),
                            "La operación de añadir un 4 (no repetido) en la posición 1 no lo añade correctamente");

            conjunto.Add(1, 1);
            Assert.AreEqual(4, conjunto.NumeroElementos,
                            "Añadir un elemento (repetido) en medio a un conjunto con 4 elementos incrementa el número de elementos a 5.");
            Assert.AreEqual("{0, 4, 1, 2}", conjunto.ToString(),
                            "La operación de añadir un 1 (repetido) en la posición 1 lo añade.");
        }
コード例 #5
0
        public void TestConjuntoAddFirst()
        {
            conjunto = new Conjunto <int>(1, 2);

            conjunto.AddFirst(0);
            Assert.AreEqual(3, conjunto.NumeroElementos,
                            "Añadir un elemento (no repetido) al principio a un conjunto con 2 elementos no incrementa el número de elementos a 3.");
            Assert.AreEqual("{0, 1, 2}", conjunto.ToString(),
                            "La operación de añadir al principio un elemento no repetido no lo añade correctamente.");

            conjunto.AddFirst(2);
            Assert.AreEqual(3, conjunto.NumeroElementos,
                            "Añadir un elemento (repetido) al principio a un conjunto incrementa el número de elementos.");
            Assert.AreEqual("{0, 1, 2}", conjunto.ToString(),
                            "La operación de añadir al principio un elemento repetido lo añade.");
        }
コード例 #6
0
        public void TestConjuntoConstructorUnSoloElemento()
        {
            conjunto = new Conjunto <int>(1);

            Assert.AreEqual(1, conjunto.NumeroElementos,
                            "El constructor de conjunto con un elemento no crea un conjunto con 1 elemento.");
            Assert.AreEqual("{1}", conjunto.ToString(),
                            "El constructor de conjunto con un 1 como parámetro no crea un conjunto con un 1.");
        }
コード例 #7
0
        public void TestConjuntoConstructorArray()
        {
            conjunto = new Conjunto <int>(new int[] { 1, 2, 1, 3 });

            Assert.AreEqual(3, conjunto.NumeroElementos,
                            "El constructor de conjunto con 4 elementos como parámetro (uno de ellos repetido) no crea una conjunto con 3 elementos.");
            Assert.AreEqual("{1, 2, 3}", conjunto.ToString(),
                            "El constructor de conjunto con varios elementos como parámetro no crea un conjunto con los números 1, 2 y 3.");
        }
コード例 #8
0
        public void TestConjuntoConstructorConjuntoVacio()
        {
            conjunto = new Conjunto <int>();

            Assert.AreEqual(0, conjunto.NumeroElementos,
                            "El constructor de conjunto vacío no crea una conjunto con 0 elementos.");
            Assert.AreEqual("{}", conjunto.ToString(),
                            "El constructor de conjunto vacío no crea una conjunto vacío.");
        }
コード例 #9
0
        public void TestConjuntoRemoveAt()
        {
            conjunto = new Conjunto <int>(1, 2, 3, 4);

            conjunto.RemoveAt(1);
            Assert.AreEqual(3, conjunto.NumeroElementos,
                            "Borrar un elemento del medio de un conjunto de 4 elementos no decrementa el número de elementos a 3.");
            Assert.AreEqual("{1, 3, 4}", conjunto.ToString(),
                            "La operación de borrar el elemento en la posición 1 no lo borra correctamente");
        }
コード例 #10
0
        public void TestConjuntoRemoveFirst()
        {
            conjunto = new Conjunto <int>(1, 3, 4);

            conjunto.RemoveFirst();
            Assert.AreEqual(2, conjunto.NumeroElementos,
                            "Borrar un elemento al principio de un conjunto de 3 elementos no decrementa el número de elementos a 2.");
            Assert.AreEqual("{3, 4}", conjunto.ToString(),
                            "La operación de borrar el elemento al principio no lo borra correctamente");
        }
コード例 #11
0
        public void TestConjuntoRemoveLast()
        {
            conjunto = new Conjunto <int>(3, 4);

            conjunto.RemoveLast();
            Assert.AreEqual(1, conjunto.NumeroElementos,
                            "Borrar un elemento al final de un conjunto de 2 elementos no decrementa el número de elementos a 1.");
            Assert.AreEqual("{3}", conjunto.ToString(),
                            "La operación de borrar el elemento al final no lo borra correctamente");
        }
コード例 #12
0
        public void TestConjuntoOperadorMas01()
        {
            Conjunto <String> conjuntoStrings  = new Conjunto <String>("w", "o", "r", "l");
            Conjunto <String> conjuntoStrings2 = conjuntoStrings + "d";

            Assert.AreEqual(5, conjuntoStrings2.NumeroElementos,
                            "El operador + del conjunto no incrementa el número de elementos en 1 al añadir un elemento no repetido.");
            Assert.AreEqual("{w, o, r, l, d}", conjuntoStrings2.ToString(),
                            "El operador + del conjunto no añade el nuevo elemento (no repetido) al final del conjunto.");
            // Comprobamos que conjuntoStrings no se ve modificado
            Assert.AreEqual(4, conjuntoStrings.NumeroElementos,
                            "El operador + del conjunto modifica el conjunto sobre el que se aplica.");
            Assert.AreEqual("{w, o, r, l}", conjuntoStrings.ToString(),
                            "El operador + del conjunto modifica el conjunto sobre el que se aplica.");

            conjuntoStrings2 += "d";
            Assert.AreEqual(5, conjuntoStrings2.NumeroElementos,
                            "El operador + del conjunto incrementa el número de elementos en 1 al añadir un elemento repetido.");
            Assert.AreEqual("{w, o, r, l, d}", conjuntoStrings2.ToString(),
                            "El operador + del conjunto añade un elemento repetido al final del conjunto.");
        }
コード例 #13
0
        public void TestConjuntoRemoveValue()
        {
            conjunto = new Conjunto <int>(1, 3, 4);

            bool wasRemoved = conjunto.RemoveValue(3);

            Assert.AreEqual(2, conjunto.NumeroElementos,
                            "Borrar usando RemoveValue() un elemento que está en el conjunto no decrementa en 1 el número de elementos.");
            Assert.AreEqual(true, wasRemoved,
                            "Borrar usando RemoveValue() un elemento que está en el conjunto no retorna true.");
            Assert.AreEqual("{1, 4}", conjunto.ToString(),
                            "Borrar usando RemoveValue() un elemento que está en el conjunto no lo borra correctamente.");

            wasRemoved = conjunto.RemoveValue(3);
            Assert.AreEqual(2, conjunto.NumeroElementos,
                            "Borrar usando RemoveValue() un elemento que NO está en el conjunto modifica el número de elementos.");
            Assert.AreEqual(false, wasRemoved,
                            "Borrar usando RemoveValue() un elemento que NO está en el conjunto no retorna false.");
            Assert.AreEqual("{1, 4}", conjunto.ToString(),
                            "Borrar usando RemoveValue() un elemento que NO está en el conjunto modifica el conjunto.");
        }
コード例 #14
0
        public void TestConjuntoAddLast()
        {
            conjunto = new Conjunto <int>();

            conjunto.AddLast(1);
            Assert.AreEqual(1, conjunto.NumeroElementos,
                            "Añadir un elemento al final a un conjunto vacío no incrementa el número de elementos a 1.");
            Assert.AreEqual("{1}", conjunto.ToString(),
                            "La operación de añadir al final un 1 no lo añade correctamente");

            conjunto.AddLast(2);
            Assert.AreEqual(2, conjunto.NumeroElementos,
                            "Añadir un elemento (no repetido) al final a un conjunto con 1 elemento no incrementa el número de elementos a 2.");
            Assert.AreEqual("{1, 2}", conjunto.ToString(),
                            "Añadir un elemento (no repetido) al final a un conjunto con 1 elemento no lo añade correctamente.");

            conjunto.AddLast(2);
            Assert.AreEqual(2, conjunto.NumeroElementos,
                            "Añadir un elemento (repetido) al final a un conjunto incrementa el número de elementos.");
            Assert.AreEqual("{1, 2}", conjunto.ToString(),
                            "Añadir un elemento (repetido) al final a un conjunto lo añade.");
        }
コード例 #15
0
        public void TestConjuntoConstructorCopia()
        {
            Conjunto <int> conjuntoOtro = new Conjunto <int>(1, 2, 3);

            conjunto = new Conjunto <int>(conjuntoOtro);

            Assert.AreEqual(conjuntoOtro.NumeroElementos, conjunto.NumeroElementos,
                            "El conjunto creado con el constructor de copia tiene el mismo número de elementos que el conjunto original.");
            Assert.AreEqual(conjuntoOtro.ToString(), conjunto.ToString(),
                            "El conjunto creado con el constructor de copia tiene los mismos elementos que el conjunto original.");

            // Comprobamos que los dos conjuntos son totalmente independientes (modificar uno no modifica el otro)
            conjuntoOtro.AddLast(4);
            conjunto.RemoveFirst();

            Assert.AreEqual(4, conjuntoOtro.NumeroElementos,
                            "El conjunto creado con el constructor de copia no es independiente del conjunto original.");
            Assert.AreEqual("{1, 2, 3, 4}", conjuntoOtro.ToString(),
                            "El conjunto creado con el constructor de copia no es independiente del conjunto original.");
            Assert.AreEqual(2, conjunto.NumeroElementos,
                            "El conjunto creado con el constructor de copia no es independiente del conjunto original.");
            Assert.AreEqual("{2, 3}", conjunto.ToString(),
                            "El conjunto creado con el constructor de copia no es independiente del conjunto original.");
        }
コード例 #16
0
        public void TestConjuntoOperadorMenos01()
        {
            Conjunto <String> conjuntoStrings  = new Conjunto <String>("w", "o", "r", "l");
            Conjunto <String> conjuntoStrings2 = conjuntoStrings - "l";

            Assert.AreEqual(3, conjuntoStrings2.NumeroElementos,
                            "El operador - del conjunto con un elemento que está en el conjunto " +
                            "no decrementa el número de elementos en 1.");
            Assert.AreEqual("{w, o, r}", conjuntoStrings2.ToString(),
                            "El operador - del conjunto con un elemento que está en el conjunto " +
                            "no elimina dicho elemento.");
            // Comprobamos que conjuntoStrings no se ve modificado
            Assert.AreEqual(4, conjuntoStrings.NumeroElementos,
                            "El operador - del conjunto modifica el conjunto sobre el que se aplica.");
            Assert.AreEqual("{w, o, r, l}", conjuntoStrings.ToString(),
                            "El operador - del conjunto modifica el conjunto sobre el que se aplica.");

            conjuntoStrings2 -= "l";
            Assert.AreEqual(3, conjuntoStrings2.NumeroElementos,
                            "El operador - del conjunto con un elemento que no está en el conjunto " +
                            "decrementa el número de elementos en 1.");
            Assert.AreEqual("{w, o, r}", conjuntoStrings2.ToString(),
                            "El operador - del conjunto con un elemento que no está en el conjunto modifica el conjunto.");
        }
コード例 #17
0
        public void TestConjuntoOperadorMenos02()
        {
            Conjunto <String> conjuntoStrings  = new Conjunto <String>("w", "o", "r", "l");
            Conjunto <String> conjuntoStrings2 = conjuntoStrings - new String[] { "r", "l", "l" };

            Assert.AreEqual(2, conjuntoStrings2.NumeroElementos,
                            "El operador - del conjunto usado con un array no decrementa el número de elementos " +
                            "del conjunto en el número de elementos del array que no se repiten en el conjunto.");
            Assert.AreEqual("{w, o}", conjuntoStrings2.ToString(),
                            "El operador - del conjunto usado con un array no borra los elementos correctamente del conjunto.");
            // Comprobamos que conjuntoStrings no se ve modificado
            Assert.AreEqual(4, conjuntoStrings.NumeroElementos,
                            "El operador - del conjunto modifica el conjunto sobre el que se aplica.");
            Assert.AreEqual("{w, o, r, l}", conjuntoStrings.ToString(),
                            "El operador - del conjunto modifica el conjunto sobre el que se aplica.");
        }
コード例 #18
0
        public void TestConjuntoOperadorInterseccion()
        {
            Conjunto <int> conjunto1    = new Conjunto <int>(1, 2, 3);
            Conjunto <int> conjunto2    = new Conjunto <int>(2, 3, 4);
            Conjunto <int> interseccion = conjunto1 & conjunto2;

            Assert.AreEqual(2, interseccion.NumeroElementos,
                            "El operador & del conjunto con otro conjunto no tiene el número de elementos " +
                            "equivalente a los elementos que aparecen en ambos conjuntos.");
            Assert.AreEqual("{2, 3}", interseccion.ToString(),
                            "El operador & del conjunto con otro conjunto no tiene los elementos que aparecen en ambos conjuntos.");

            // Comprobamos que los conjuntos iniciales no se ven modificados
            Assert.AreEqual(3, conjunto1.NumeroElementos,
                            "El operador & modifica el primer conjunto.");
            Assert.AreEqual("{1, 2, 3}", conjunto1.ToString(),
                            "El operador & modifica el primer conjunto.");

            Assert.AreEqual(3, conjunto2.NumeroElementos,
                            "El operador & modifica el segundo conjunto.");
            Assert.AreEqual("{2, 3, 4}", conjunto2.ToString(),
                            "El operador & modifica el segundo conjunto.");
        }
コード例 #19
0
        public void TestConjuntoOperadorUnion()
        {
            Conjunto <int> conjunto1 = new Conjunto <int>(1, 2, 3);
            Conjunto <int> conjunto2 = new Conjunto <int>(2, 3, 4);
            Conjunto <int> union     = conjunto1 | conjunto2;

            Assert.AreEqual(4, union.NumeroElementos,
                            "El operador | del conjunto con otro conjunto no tiene el número de elementos " +
                            "equivalente a los elementos únicos de cada conjunto.");
            Assert.AreEqual("{1, 2, 3, 4}", union.ToString(),
                            "El operador | del conjunto con otro conjunto no tiene los elementos únicos de cada conjunto.");

            // Comprobamos que los conjuntos iniciales no se ven modificados
            Assert.AreEqual(3, conjunto1.NumeroElementos,
                            "El operador | modifica el primer conjunto.");
            Assert.AreEqual("{1, 2, 3}", conjunto1.ToString(),
                            "El operador | modifica el primer conjunto.");

            Assert.AreEqual(3, conjunto2.NumeroElementos,
                            "El operador | modifica el segundo conjunto.");
            Assert.AreEqual("{2, 3, 4}", conjunto2.ToString(),
                            "El operador | modifica el segundo conjunto.");
        }
コード例 #20
0
        public void TestConjuntoOperadorDiferencia()
        {
            Conjunto <int> conjunto1    = new Conjunto <int>(1, 2, 3, 4, 5);
            Conjunto <int> conjunto2    = new Conjunto <int>(2, 3, 4, 6);
            Conjunto <int> interseccion = conjunto1 - conjunto2;

            Assert.AreEqual(2, interseccion.NumeroElementos,
                            "El operador - del conjunto con otro conjunto no tiene el número de elementos " +
                            "equivalente a los elementos del primer conjunto que no aparecen en el segundo.");
            Assert.AreEqual("{1, 5}", interseccion.ToString(),
                            "El operador - del conjunto con otro conjunto no tiene los elementos " +
                            "del primer conjunto que no aparecen en el segundo.");

            // Comprobamos que los conjuntos iniciales no se ven modificados
            Assert.AreEqual(5, conjunto1.NumeroElementos,
                            "El operador - modifica el primer conjunto.");
            Assert.AreEqual("{1, 2, 3, 4, 5}", conjunto1.ToString(),
                            "El operador - modifica el primer conjunto.");

            Assert.AreEqual(4, conjunto2.NumeroElementos,
                            "El operador - modifica el segundo conjunto.");
            Assert.AreEqual("{2, 3, 4, 6}", conjunto2.ToString(),
                            "El operador - modifica el segundo conjunto.");
        }