View Source Machete.FloatMatcher (Machete v0.3.1)

Defines a matcher that matches float values

Summary

Types

Describes the arguments that can be passed to this matcher

t()

Describes an instance of this matcher

Functions

Matches against float values

Types

@type opts() :: [
  positive: boolean(),
  strictly_positive: boolean(),
  negative: boolean(),
  strictly_negative: boolean(),
  nonzero: boolean(),
  min: float(),
  max: float()
]

Describes the arguments that can be passed to this matcher

@opaque t()

Describes an instance of this matcher

Functions

@spec float(opts()) :: t()

Matches against float values

Takes the following arguments:

  • positive: When true, requires the matched float be positive or zero
  • strictly_positive: When true, requires the matched float be positive and nonzero
  • negative: When true, requires the matched float be negative or zero
  • strictly_negative: When true, requires the matched float be negative and nonzero
  • nonzero: When true, requires the matched float be nonzero
  • min: Requires the matched float be greater than or equal to the specified value
  • max: Requires the matched float be less than or equal to the specified value

Examples:

iex> assert 1.0 ~> float()
true

iex> assert 1.0 ~> float(positive: true)
true

iex> assert 0.0 ~> float(positive: true)
true

iex> assert -1.0 ~> float(positive: false)
true

iex> refute 0.0 ~> float(positive: false)
false

iex> assert 1.0 ~> float(strictly_positive: true)
true

iex> refute 0.0 ~> float(strictly_positive: true)
false

iex> assert -1.0 ~> float(strictly_positive: false)
true

iex> assert 0.0 ~> float(strictly_positive: false)
true

iex> assert -1.0 ~> float(negative: true)
true

iex> assert 0.0 ~> float(negative: true)
true

iex> assert 1.0 ~> float(negative: false)
true

iex> refute 0.0 ~> float(negative: false)
false

iex> assert -1.0 ~> float(strictly_negative: true)
true

iex> refute 0.0 ~> float(strictly_negative: true)
false

iex> assert 1.0 ~> float(strictly_negative: false)
true

iex> assert 0.0 ~> float(strictly_negative: false)
true

iex> assert 1.0 ~> float(nonzero: true)
true

iex> assert 0.0 ~> float(nonzero: false)
true

iex> assert 2.0 ~> float(min: 2.0)
true

iex> assert 2.0 ~> float(max: 2.0)
true