package testing
import "github.com/IBM/fp-go/internal/apply/testing"
Index ¶
- func ApplyAssertAssociativeComposition[HKTA, HKTB, HKTC, HKTAB, HKTBC, HKTAC, HKTABAC, A, B, C any](t *testing.T, eq E.Eq[HKTC], fofab pointed.Pointed[func(A) B, HKTAB], fofbc pointed.Pointed[func(B) C, HKTBC], fmap functor.Functor[func(B) C, func(func(A) B) func(A) C, HKTBC, HKTABAC], fapab apply.Apply[A, B, HKTA, HKTB, HKTAB], fapbc apply.Apply[B, C, HKTB, HKTC, HKTBC], fapac apply.Apply[A, C, HKTA, HKTC, HKTAC], fapabac apply.Apply[func(A) B, func(A) C, HKTAB, HKTAC, HKTABAC], ab func(A) B, bc func(B) C, ) func(fa HKTA) bool
- func ApplyAssertLaws[HKTA, HKTB, HKTC, HKTAB, HKTBC, HKTAC, HKTABAC, A, B, C any](t *testing.T, eqa E.Eq[HKTA], eqc E.Eq[HKTC], fofab pointed.Pointed[func(A) B, HKTAB], fofbc pointed.Pointed[func(B) C, HKTBC], faa functor.Functor[A, A, HKTA, HKTA], fmap functor.Functor[func(B) C, func(func(A) B) func(A) C, HKTBC, HKTABAC], fapab apply.Apply[A, B, HKTA, HKTB, HKTAB], fapbc apply.Apply[B, C, HKTB, HKTC, HKTBC], fapac apply.Apply[A, C, HKTA, HKTC, HKTAC], fapabac apply.Apply[func(A) B, func(A) C, HKTAB, HKTAC, HKTABAC], ab func(A) B, bc func(B) C, ) func(fa HKTA) bool
- func AssertAssociativeComposition[HKTA, HKTB, HKTC, HKTAB, HKTBC, HKTAC, HKTABAC, A, B, C any](t *testing.T, eq E.Eq[HKTC], fofab func(func(A) B) HKTAB, fofbc func(func(B) C) HKTBC, fmap func(HKTBC, func(func(B) C) func(func(A) B) func(A) C) HKTABAC, fapab func(HKTAB, HKTA) HKTB, fapbc func(HKTBC, HKTB) HKTC, fapac func(HKTAC, HKTA) HKTC, fapabac func(HKTABAC, HKTAB) HKTAC, ab func(A) B, bc func(B) C, ) func(fa HKTA) bool
- func AssertLaws[HKTA, HKTB, HKTC, HKTAB, HKTBC, HKTAC, HKTABAC, A, B, C any](t *testing.T, eqa E.Eq[HKTA], eqc E.Eq[HKTC], fofab func(func(A) B) HKTAB, fofbc func(func(B) C) HKTBC, faa func(HKTA, func(A) A) HKTA, fab func(HKTA, func(A) B) HKTB, fac func(HKTA, func(A) C) HKTC, fbc func(HKTB, func(B) C) HKTC, fmap func(HKTBC, func(func(B) C) func(func(A) B) func(A) C) HKTABAC, fapab func(HKTAB, HKTA) HKTB, fapbc func(HKTBC, HKTB) HKTC, fapac func(HKTAC, HKTA) HKTC, fapabac func(HKTABAC, HKTAB) HKTAC, ab func(A) B, bc func(B) C, ) func(fa HKTA) bool
Functions ¶
func ApplyAssertAssociativeComposition ¶
func ApplyAssertAssociativeComposition[HKTA, HKTB, HKTC, HKTAB, HKTBC, HKTAC, HKTABAC, A, B, C any](t *testing.T, eq E.Eq[HKTC], fofab pointed.Pointed[func(A) B, HKTAB], fofbc pointed.Pointed[func(B) C, HKTBC], fmap functor.Functor[func(B) C, func(func(A) B) func(A) C, HKTBC, HKTABAC], fapab apply.Apply[A, B, HKTA, HKTB, HKTAB], fapbc apply.Apply[B, C, HKTB, HKTC, HKTBC], fapac apply.Apply[A, C, HKTA, HKTC, HKTAC], fapabac apply.Apply[func(A) B, func(A) C, HKTAB, HKTAC, HKTABAC], ab func(A) B, bc func(B) C, ) func(fa HKTA) bool
Apply associative composition law
F.ap(F.ap(F.map(fbc, bc => ab => a => bc(ab(a))), fab), fa) <-> F.ap(fbc, F.ap(fab, fa))
func ApplyAssertLaws ¶
func ApplyAssertLaws[HKTA, HKTB, HKTC, HKTAB, HKTBC, HKTAC, HKTABAC, A, B, C any](t *testing.T, eqa E.Eq[HKTA], eqc E.Eq[HKTC], fofab pointed.Pointed[func(A) B, HKTAB], fofbc pointed.Pointed[func(B) C, HKTBC], faa functor.Functor[A, A, HKTA, HKTA], fmap functor.Functor[func(B) C, func(func(A) B) func(A) C, HKTBC, HKTABAC], fapab apply.Apply[A, B, HKTA, HKTB, HKTAB], fapbc apply.Apply[B, C, HKTB, HKTC, HKTBC], fapac apply.Apply[A, C, HKTA, HKTC, HKTAC], fapabac apply.Apply[func(A) B, func(A) C, HKTAB, HKTAC, HKTABAC], ab func(A) B, bc func(B) C, ) func(fa HKTA) bool
ApplyAssertLaws asserts the apply laws `identity`, `composition` and `associative composition`
func AssertAssociativeComposition ¶
func AssertAssociativeComposition[HKTA, HKTB, HKTC, HKTAB, HKTBC, HKTAC, HKTABAC, A, B, C any](t *testing.T, eq E.Eq[HKTC], fofab func(func(A) B) HKTAB, fofbc func(func(B) C) HKTBC, fmap func(HKTBC, func(func(B) C) func(func(A) B) func(A) C) HKTABAC, fapab func(HKTAB, HKTA) HKTB, fapbc func(HKTBC, HKTB) HKTC, fapac func(HKTAC, HKTA) HKTC, fapabac func(HKTABAC, HKTAB) HKTAC, ab func(A) B, bc func(B) C, ) func(fa HKTA) bool
Apply associative composition law
F.ap(F.ap(F.map(fbc, bc => ab => a => bc(ab(a))), fab), fa) <-> F.ap(fbc, F.ap(fab, fa))
Deprecated: use ApplyAssertAssociativeComposition instead
func AssertLaws ¶
func AssertLaws[HKTA, HKTB, HKTC, HKTAB, HKTBC, HKTAC, HKTABAC, A, B, C any](t *testing.T, eqa E.Eq[HKTA], eqc E.Eq[HKTC], fofab func(func(A) B) HKTAB, fofbc func(func(B) C) HKTBC, faa func(HKTA, func(A) A) HKTA, fab func(HKTA, func(A) B) HKTB, fac func(HKTA, func(A) C) HKTC, fbc func(HKTB, func(B) C) HKTC, fmap func(HKTBC, func(func(B) C) func(func(A) B) func(A) C) HKTABAC, fapab func(HKTAB, HKTA) HKTB, fapbc func(HKTBC, HKTB) HKTC, fapac func(HKTAC, HKTA) HKTC, fapabac func(HKTABAC, HKTAB) HKTAC, ab func(A) B, bc func(B) C, ) func(fa HKTA) bool
AssertLaws asserts the apply laws `identity`, `composition` and `associative composition`
Deprecated: use ApplyAssertLaws instead
Source Files ¶
- Version
- v1.0.151 (latest)
- Published
- Nov 23, 2024
- Platform
- linux/amd64
- Imports
- 7 packages
- Last checked
- 5 months ago –
Tools for package owners.