BoundNumber

NumberCustomBound

BoundTypes.NumberCustomBoundType
NumberCustomBound{T<:Number,B} <: BoundNumber{T}
NumberCustomBound{T,B}(x::Number)

A number constraint for a value x of type T using custom function B. Function B should only accept object x and return true or false (or throw a custom ConstraintError).

Examples

julia> NumberCustomBound{Float64,x -> x % 2 == 0}(10.0)
10.0

julia> NumberCustomBound{Float64,x -> x % 2 == 0}(13.0)
ERROR: ConstraintError: constraints of type NumberCustomBound violated.
Wrong value: Custom constraint '#7' violated for value "13.0" of type Float64.
[...]

NumberPositive

BoundTypes.NumberPositiveType
NumberPositive{T<:Number} <: BoundNumber{T}
NumberPositive{T}(x::Number)

A number constraint that enforces x > 0 for value x of type T.

Examples

julia> NumberPositive{Float64}(10.0)
10.0

julia> NumberPositive{Float64}(-10.0)
ERROR: ConstraintError: constraints of type NumberPositive violated.
Wrong value: number -10.0 must be a positive (x > 0).
[...]

NumberNegative

BoundTypes.NumberNegativeType
NumberNegative{T<:Number} <: BoundNumber{T}
NumberNegative{T}(x::Number)

A number constraint that enforces x < 0 for value x of type T.

Examples

julia> NumberNegative{Float64}(-10.0)
-10.0

julia> NumberNegative{Float64}(10.0)
ERROR: ConstraintError: constraints of type NumberNegative violated.
Wrong value: 10.0 must be a negative (x < 0).
[...]

NumberNonPositive

BoundTypes.NumberNonPositiveType
NumberNonPositive{T<:Number} <: BoundNumber{T}
NumberNonPositive{T}(x::Number)

A number constraint that enforces x ≤ 0 for value x of type T.

Examples

julia> NumberNonPositive{Float64}(-10.0)
-10.0

julia> NumberNonPositive{Float64}(10.0)
ERROR: ConstraintError: constraints of type NumberNonPositive violated.
Wrong value: number 10.0 must be a negative or zero (x ≤ 0).
[...]

NumberNonNegative

BoundTypes.NumberNonNegativeType
NumberNonNegative{T<:Number} <: BoundNumber{T}
NumberNonNegative{T}(x::Number)

A number constraint that enforces x ≥ 0 for value x of type T.

Examples

julia> NumberNonNegative{Float64}(10.0)
10.0

julia> NumberNonNegative{Float64}(-10.0)
ERROR: ConstraintError: constraints of type NumberNonNegative violated.
Wrong value: -10.0 must be a positive or zero (x ≥ 0).
[...]

NumberGreater

BoundTypes.NumberGreaterType
NumberGreater{T<:Number,V} <: BoundNumber{T}
NumberGreater{T,V}(x::Number)

A number constraint that enforces x > V for value x of type T.

Examples

julia> NumberGreater{Float64,10.0}(20.0)
20.0

julia> NumberGreater{Float64,10.0}(5.0)
ERROR: ConstraintError: constraints of type NumberGreater violated.
Wrong value: 5.0 must be greater than 10.0.
[...]

NumberGreaterOrEqual

BoundTypes.NumberGreaterOrEqualType
NumberGreaterOrEqual{T<:Number,V} <: BoundNumber{T}
NumberGreaterOrEqual{T,V}(x::Number)

A number constraint that enforces x ≥ V for value x of type T.

Examples

julia> NumberGreaterOrEqual{Float64,10.0}(20.0)
20.0

julia> NumberGreaterOrEqual{Float64,10.0}(5.0)
ERROR: ConstraintError: constraints of type NumberGreaterOrEqual violated.
Wrong value: 5.0 must be greater or equal than 10.0.
[...]

NumberLess

BoundTypes.NumberLessType
NumberLess{T<:Number,V} <: BoundNumber{T}
NumberLess{T,V}(x::Number)

A number constraint that enforces x < V for value x of type T.

Examples

julia> NumberLess{Float64,10.0}(5.0)
5.0

julia> NumberLess{Float64,10.0}(20.0)
ERROR: ConstraintError: constraints of type NumberLess violated.
Wrong value: 20.0 must be less than 10.0.
[...]

NumberLessOrEqual

BoundTypes.NumberLessOrEqualType
NumberLessOrEqual{T<:Number,V} <: BoundNumber{T}
NumberLessOrEqual{T,V}(x::Number)

A number constraint that enforces x ≤ V for value x of type T.

Examples

julia> NumberLessOrEqual{Float64,10.0}(5.0)
5.0

julia> NumberLessOrEqual{Float64,10.0}(20.0)
ERROR: ConstraintError: constraints of type NumberLessOrEqual violated.
Wrong value: 20.0 must be less or equal than 10.0.
[...]

NumberOdd

BoundTypes.NumberOddType
NumberOdd{T<:Number} <: BoundNumber{T}
NumberOdd{T}(x::Number)

A numeric constraint to ensure that the value x of type T is odd.

Examples

julia> NumberOdd{Float64}(5.0)
5.0

julia> NumberOdd{Float64}(4.0)
ERROR: ConstraintError: constraints of type NumberOdd violated.
Wrong value: 4.0 must be odd.
[...]

NumberEven

BoundTypes.NumberEvenType
NumberEven{T<:Number} <: BoundNumber{T}
NumberEven{T}(x::Number)

A numeric constraint to ensure that the value x of type T is even.

Examples

julia> NumberEven{Float64}(4.0)
4.0

julia> NumberEven{Float64}(5.0)
ERROR: ConstraintError: constraints of type NumberEven violated.
Wrong value: 5.0 must be even.
[...]

NumberInterval

BoundTypes.NumberIntervalType
NumberInterval{T<:Number,A,L,R,B} <: BoundNumber{T}
NumberInterval{T,A,L,R,B}(x::Number)

A numeric constraint for a value x of type T which belongs to an interval between A and B. Parameters L and R are the comparison functions e.g < or <= which determine whether interval boundaries are included.

Examples

julia> NumberInterval{Float64,5,<,<=,10}(7.0)
7.0

julia> NumberInterval{Float64,5,<,<=,10}(10.0)
10.0

julia> NumberInterval{Float64,5,<,<=,10}(15.0)
ERROR: ConstraintError: constraints of type NumberInterval violated.
Wrong value: 15.0 must be in interval between 5 and 10.
[...]