예제 #1
0
        public FlatMapLawsTests(IFlatMap <TF> flatMap, IEqK <TF> eqK) : base(flatMap, eqK)
        {
            var flatMapLaws = new FlatMapLaws <TF>(flatMap);

            Add("FlatMap Associativity", args =>
                flatMapLaws.FlatMapAssociativity(args.LiftedA, args.FuncAtoLiftedB, args.FuncBtoLiftedC).Holds(eqK));

            Add("FlatMap Consistent Apply", args =>
                flatMapLaws.FlatMapConsistentApply(args.LiftedA, args.LiftedFuncAtoB).Holds(eqK));

            Add("MProduct Consistency", args =>
                flatMapLaws.MProductConsistency(args.LiftedA, args.FuncAtoLiftedB).Holds(eqK));
        }
예제 #2
0
 public FlatMapLaws(IFlatMap <TF> flatMap) => _flatMap = flatMap;