Monocle
Monocle copied to clipboard
[Focus] Property based tests for Focus laws
-
Applied/unapplied symmetry
Focus[A](_.actions).command(a) == a.focus(_.actions).command -
Internal/external operator symmetry
Focus[A](_.actions.keyword) == Focus[A](_.actions).keyword -
Internal/external composition symmetry
Focus[A](_.action1.action2) == Focus[A](_.action1).andThen(Focus[B](_.action2)) -
Internal/external composition associativity
Focus[A](_.action1.action2).andThen(Focus[C](_.action3)) == Focus[A](_.action1).andThen(Focus[B](_.action2.action3))