## Check Ok/No

The Check library is an optional library that can be used
to conveniently speed-up construction of reptitive assertions.

To use it, first require the library, then include the mixin
into the namespace in which you will utilize it.

    require 'ae/check'

    include AE::Check

Now we can define ok/no check procedures. A one-off procedure is
defined with a block only.

    check do |x, y|
      x == y
    end

    ok 1,1
    no 1,2

To define reusable check procedures, give the procedure a name.

    check :palindrome do |x|
      x.reverse == x
    end

This will also cause the current check method to be set.
Later in the code, the check procedure can be reset to this
by just passing the name.

    check :palindrome

    ok 'abracarba'
    no 'foolishness'

The Check mixin comes preloaded with a few standard checks.
By default the `:equality` procedure is used.

    check :equality

    ok 1=>1.0

Notice the use of the hash argument here. This is a useful construct for
many check procedures becuase it it akin to the `#=>` pattern we often
see in code examples and it also allows for multiple assertions in one call.
For instance, in the case of `:equality`, multiple entries convey a
meaning of logical-or.

    ok 1=>2, 1.0=>1

This would pass because the second assertion of equality is true.

Another built in check is `:case_equality` which uses `#===` instead of `#==`
to make the comparison.

    check :case_equality

    ok 1=>Integer

