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)); }
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)); }
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)); }
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()); }
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)); }
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); }
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)); }
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)); }
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>()); }
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)); }