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)); }
public FlatMapLaws(IFlatMap <TF> flatMap) => _flatMap = flatMap;