Exemple #1
0
        public void IntArrOfArr_BothEmpty_IsEquivalentReturnsTrue()
        {
            var a1 = new ImmutableFunArray(new object[0], FunnyType.Anything);
            var a2 = new ImmutableFunArray(new object[0], FunnyType.Anything);

            Assert.IsTrue(a1.IsEquivalent(a2));
        }
Exemple #2
0
        public void IntArr_Slice_ReturnsExpected(int[] origin, int?start, int?end, int?step, int[] expected)
        {
            var funOrigin   = new ImmutableFunArray(origin);
            var funExpected = new ImmutableFunArray(expected);

            CollectionAssert.AreEquivalent(funExpected, funOrigin.Slice(start, end, step));
        }
Exemple #3
0
        public void IntArr_NotEquialent_IsEquivalentReturnsFalse()
        {
            var a1 = new ImmutableFunArray(new [] { 1, 2, 3 });
            var a2 = new ImmutableFunArray(new [] { 1, 2 });

            Assert.IsFalse(a1.IsEquivalent(a2));
        }
Exemple #4
0
        public void Equals_ItemsAreEqual_returnsTrue()
        {
            var a1 = new ImmutableFunArray(new[] { 1.0, 2.0 });
            var a2 = new ImmutableFunArray(new[] { 1.0, 2.0 });

            Assert.IsTrue(a1.Equals(a2));
            Assert.IsTrue(a2.Equals(a1));
            Assert.AreEqual(a1.GetHashCode(), a2.GetHashCode());
        }
Exemple #5
0
        public void ConvertArrayOfStrings()
        {
            string[] clrValue = { "vasa", "kata", "" };

            var converter = FunnyTypeConverters.GetOutputConverter(clrValue.GetType());

            Assert.AreEqual(FunnyType.ArrayOf(FunnyType.Text), converter.FunnyType);
            var funValue = new ImmutableFunArray(
                clrValue.Select(i => new TextFunArray(i)).ToArray(), FunnyType.Text);

            Assert.AreEqual(clrValue, converter.ToClrObject(funValue));
        }
Exemple #6
0
        public void ConvertIntArrayToRealArray()
        {
            var intArray = new ImmutableFunArray(new[] { 1, 2, 3, 4 });
            var typeFrom = FunnyType.ArrayOf(FunnyType.Int32);
            var typeTo   = FunnyType.ArrayOf(FunnyType.Real);

            Assert.IsTrue(VarTypeConverter.CanBeConverted(typeFrom, typeTo));
            var coverter = VarTypeConverter.GetConverterOrNull(typeFrom, typeTo);
            var actual   = coverter(intArray) as IFunArray;

            Assert.IsNotNull(actual);
            Assert.AreEqual(typeTo.ArrayTypeSpecification.FunnyType, actual.ElementType);
            CollectionAssert.AreEqual(new double[] { 1, 2, 3, 4 }, actual);
        }
Exemple #7
0
        public void IntArrOfArr_Equivalent_IsEquivalentReturnsTrue()
        {
            var a1 = new ImmutableFunArray(
                FunnyType.Anything,
                new ImmutableFunArray(new int[0]),
                new ImmutableFunArray(new int[] { 1, 2 }),
                new ImmutableFunArray(new int[] { 1, 2, 3 })
                );
            var a2 = new ImmutableFunArray(
                FunnyType.Anything,
                new ImmutableFunArray(new int[0]),
                new ImmutableFunArray(new int[] { 1, 2 }),
                new ImmutableFunArray(new int[] { 1, 2, 3 })
                );

            Assert.IsTrue(a1.IsEquivalent(a2));
        }
Exemple #8
0
        public void TextArrOfArr_NotEquivalent_IsEquivalentReturnsFalse()
        {
            var a1 = new ImmutableFunArray(
                FunnyType.Anything,
                new ImmutableFunArray(new object[0], FunnyType.Anything),
                new ImmutableFunArray(new object[] { "1", "2" }, FunnyType.Anything),
                new ImmutableFunArray(new object[] { "1", "2", "3" }, FunnyType.Anything)
                );
            var a2 = new ImmutableFunArray(
                FunnyType.Anything,
                new ImmutableFunArray(new object[] { "lalala" }, FunnyType.Anything),
                new ImmutableFunArray(new object[] { "1", "2" }, FunnyType.Anything),
                new ImmutableFunArray(new object[] { "1", "2", "3" }, FunnyType.Anything)
                );

            Assert.IsFalse(a1.IsEquivalent(a2));
        }
Exemple #9
0
        public void ExceptMultiDimensional()
        {
            var a1 = new ImmutableFunArray(
                FunnyType.Anything,
                new ImmutableFunArray(new[] { 1.0, 2.0 }),
                new ImmutableFunArray(new[] { 3.0, 4.0 }));
            var a2 = new ImmutableFunArray(
                FunnyType.Anything,
                new ImmutableFunArray(new[] { 3.0, 4.0 }),
                new ImmutableFunArray(new[] { 1.0 }),
                new ImmutableFunArray(new[] { 4.0 })
                );
            var res = a1.Except(a2).ToArray();

            Assert.AreEqual(1, res.Length);
            CollectionAssert.AreEquivalent(new[] { 1.0, 2.0 }, ((IEnumerable)res[0]).Cast <object>());
        }
Exemple #10
0
        public void IntArrOfArr_NotEquivalent_IsEquivalentReturnsFalse()
        {
            var a1 = new ImmutableFunArray(
                FunnyType.Anything,
                new ImmutableFunArray(new object[0], FunnyType.Anything),
                new ImmutableFunArray(new object[] { 1, 2 }, FunnyType.Anything),
                new ImmutableFunArray(new object[] { 1, 2, 3 }, FunnyType.Anything)
                );
            var a2 = new ImmutableFunArray(
                FunnyType.Int64,
                new ImmutableFunArray(new object[0], FunnyType.Anything),
                new ImmutableFunArray(new object[] { 1, 2 }, FunnyType.Anything),
                new ImmutableFunArray(new object[] { 1, 2 }, FunnyType.Anything)
                );

            Assert.IsFalse(a1.IsEquivalent(a2));
        }