public void IsoUnOptionalTest()
 {
     Assert.AreEqual(false, SubStL(bISO)(true));
     Assert.AreEqual(true, SubStL(bISO)(false));
     Assert.AreEqual(false, SubStL(badISO)(true));
     Assert.Throws(typeof(Exception), () => SubStL(badISO)(false));
 }
    public void IsoTupleTest()
    {
        var tuple = SubStL(IsoTuple(tISO, tISO))(Tuple.Create(true, false));

        Assert.AreEqual(MEOW, tuple.Item1);
        Assert.AreEqual(MOE, tuple.Item2);
    }
 public void IsoEitherTest()
 {
     Assert.AreEqual(Either <bool, string> .Left(false),
                     SubStL(IsoEither(IsoBoolNot(), tISO))(Either <bool, bool> .Left(true)));
     Assert.AreEqual(Either <bool, string> .Left(true),
                     SubStL(IsoEither(IsoBoolNot(), tISO))(Either <bool, bool> .Left(false)));
     Assert.AreEqual(Either <bool, string> .Right(MEOW),
                     SubStL(IsoEither(IsoBoolNot(), tISO))(Either <bool, bool> .Right(true)));
 }
Beispiel #4
0
 public void IsoEUTest()
 {
     Assert.AreEqual(lrl(IsoEU())(Either <List <Unit>, Unit> .Left(new List <Unit>())),
                     Either <List <Unit>, Unit> .Left(new List <Unit>()));
     Assert.AreEqual(lrl(IsoEU())(Either <List <Unit>, Unit> .Left(lu())), Either <List <Unit>, Unit> .Left(lu()));
     Assert.AreEqual(lrl(IsoEU())(Either <List <Unit>, Unit> .Right(Unit.INSTANCE)),
                     Either <List <Unit>, Unit> .Right(Unit.INSTANCE));
     Assert.AreEqual(rlr(IsoEU())(Either <List <Unit>, Void> .Left(new List <Unit>())),
                     Either <List <Unit>, Unit> .Left(new List <Unit>()));
     Assert.AreEqual(rlr(IsoEU())(Either <List <Unit>, Void> .Left(lu())), Either <List <Unit>, Unit> .Left(lu()));
     Assert.AreEqual(SubStL(IsoEU())(Either <List <Unit>, Unit> .Right(Unit.INSTANCE))
                     .Match(l => true, r => false), true);
 }
 public void SubStRTest()
 {
     Assert.AreEqual(MEOW, SubStL(SubStR(new ISO <ISO <bool, string>, object>(null, e => tISO))(null))(true));
     Assert.AreEqual(true, SubStR(IsoBool())(true));
     Assert.AreEqual(false, SubStR(IsoBool())(false));
 }
 public void SubStLTest()
 {
     Assert.AreEqual(MEOW, SubStL(tISO)(true));
     Assert.AreEqual(false, SubStL(IsoBool())(false));
     Assert.AreEqual(true, SubStL(IsoBool())(true));
 }
 public void IsoOptionalTest()
 {
     Assert.IsFalse(SubStL(IsoOptional(tISO))(Optional <bool> .Empty()).IsPresent());
     Assert.AreEqual(MEOW, SubStL(IsoOptional(tISO))(Optional <bool> .From(true)).Get());
 }
 public void IsoFuncTest()
 {
     Assert.AreEqual(MEOW, SubStL(IsoFunc(Symm(tISO), tISO))(MEOW.Equals)(true));
 }
 public void IsoListTest()
 {
     Assert.AreEqual(MEOW + MEOW + MOE,
                     SubStL(IsoList(tISO))(new List <bool>(new[] { true, true, false }))
                     .Aggregate((a, b) => a + b));
 }
 public void TransTest()
 {
     Assert.AreEqual(MEOW, SubStL(Trans(Refl <bool>(), Trans(tISO, Refl <string>())))(true));
 }
 public void ReflTest()
 {
     Assert.AreEqual(MEOW, SubStL(SubStL(Refl <ISO <bool, string> >())(tISO))(true));
 }