# Machete v0.3.12 - Table of Contents

Literate test matchers for ExUnit

## Modules

- [Machete](Machete.md): Machete provides ergonomic match operators to help make your ExUnit tests more literate
- [Machete.Assertions](Machete.Assertions.md): Macros for use within the context of ExUnit tests, to provide `~>` awareness to `assert/1` and
`refute/1` macros. Because macros cannot be defined in multiple modules, proper use of this
module requires the user to take `ExUnit.Assertions`' version of `assert/1` and `refute/1` out
of scope, and to allow this module's versions of those macros to call through to
`ExUnit.Assertions`' version for conditions other than `~>`. See `Machete.__using__/1` for
details.

- [Machete.Matchable](Machete.Matchable.md): Defines a protocol to determine how a given term may match against a type. The
`Machete.Matchable` protocol is central to the Machete library, and conformance to it is
necessary for any type to be used on the right hand side of a `~>` match

- [Machete.Mismatch](Machete.Mismatch.md): Data and functions to deal with representing mismatches

- [Machete.NumberMatcher](Machete.NumberMatcher.md): Defines a matcher that matches number values. Comparison is done in a type-agnostic manner, for
example `1.0 ~> number(exactly: 1)` matches, as does `1 ~> number(exactly: 1.0)`.

- [Machete.NumericTimeMatcher](Machete.NumericTimeMatcher.md): Defines a matcher that matches integers that represent time against various measurements
(`monotonic_time`, `system_time`, and `os_time`), and in various units (`:native`, millisecond,
microsecond, nanosecond, etc).

- [Machete.Operators](Machete.Operators.md): Defines implementations for the `~>` and `~>>` operators

- Matchers
  - [Machete.AllMatcher](Machete.AllMatcher.md): Defines a matcher that matches against a set of matchers, requiring all of them to match

  - [Machete.AnyMatcher](Machete.AnyMatcher.md): Defines a matcher that matches against a set of matchers, requiring at least one of them to match

  - [Machete.AtomMatcher](Machete.AtomMatcher.md): Defines a matcher that matches atom values

  - [Machete.BooleanMatcher](Machete.BooleanMatcher.md): Defines a matcher that matches boolean values

  - [Machete.DateMatcher](Machete.DateMatcher.md): Defines a matcher that matches Date values

  - [Machete.DateTimeMatcher](Machete.DateTimeMatcher.md): Defines a matcher that matches DateTime values

  - [Machete.FalsyMatcher](Machete.FalsyMatcher.md): Defines a matcher that matches falsy values

  - [Machete.FloatMatcher](Machete.FloatMatcher.md): Defines a matcher that matches float values

  - [Machete.ISO8601DateTimeMatcher](Machete.ISO8601DateTimeMatcher.md): Defines a matcher that matches ISO8601 formatted strings

  - [Machete.InAnyOrderMatcher](Machete.InAnyOrderMatcher.md): Defines a matcher that matches lists in any order

  - [Machete.IndifferentAccessMatcher](Machete.IndifferentAccessMatcher.md): Defines a matcher that matches indifferently (that is, it considers similar atom and string keys
to be equivalent)

  - [Machete.IntegerMatcher](Machete.IntegerMatcher.md): Defines a matcher that matches integer values

  - [Machete.IsAMatcher](Machete.IsAMatcher.md): Defines a matcher that matches againt a type of struct

  - [Machete.JSONMatcher](Machete.JSONMatcher.md): Defines a matcher that matches JSON documents

  - [Machete.ListMatcher](Machete.ListMatcher.md): Defines a matcher that matches lists

  - [Machete.MapMatcher](Machete.MapMatcher.md): Defines a matcher that matches maps

  - [Machete.MaybeMatcher](Machete.MaybeMatcher.md): Defines a matcher that matches against another matcher & also matches nil

  - [Machete.NaiveDateTimeMatcher](Machete.NaiveDateTimeMatcher.md): Defines a matcher that matches NaiveDateTime values

  - [Machete.NoneMatcher](Machete.NoneMatcher.md): Defines a matcher that matches against a set of matchers, requiring none of them to match

  - [Machete.PIDMatcher](Machete.PIDMatcher.md): Defines a matcher that matches PID values

  - [Machete.PortMatcher](Machete.PortMatcher.md): Defines a matcher that matches port values

  - [Machete.ReferenceMatcher](Machete.ReferenceMatcher.md): Defines a matcher that matches reference values

  - [Machete.StringMatcher](Machete.StringMatcher.md): Defines a matcher that matches string values

  - [Machete.StructLikeMatcher](Machete.StructLikeMatcher.md): Defines a matcher that matches structs only on a specified list of fields

  - [Machete.SubsetMatcher](Machete.SubsetMatcher.md): Defines a matcher that matches maps which are a subset of a specified map

  - [Machete.SupersetMatcher](Machete.SupersetMatcher.md): Defines a matcher that matches maps which are a superset of a specified map

  - [Machete.TermMatcher](Machete.TermMatcher.md): Defines a matcher that matches everything

  - [Machete.TimeMatcher](Machete.TimeMatcher.md): Defines a matcher that matches Time values

  - [Machete.TruthyMatcher](Machete.TruthyMatcher.md): Defines a matcher that matches truthy values

  - [Machete.UnixTimeMatcher](Machete.UnixTimeMatcher.md): Defines a matcher that matches integers that represent Unix time in milliseconds

