Safe Haskell | None |
---|---|
Language | Haskell2010 |
Test.TypeSpecCrazy
Description
Funny operators that are mere type aliases for the constructs in TypeSpec
Synopsis
- type (--*) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr
- type (###) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (######) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (#########) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (############) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (###############) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (##################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (#####################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (########################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (###########################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (##############################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (#################################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (####################################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (#######################################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (##########################################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (#############################################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (################################################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (###################################################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (######################################################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (#########################################################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (############################################################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (###############################################################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (##################################################################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (#####################################################################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (########################################################################) (title :: Symbol) (expr :: expectation) = Explain title expr
- type (-*) (expectation1 :: k) (expectation2 :: k1) = expectation1 -/- expectation2
- type (-*-) (expectation1 :: k) (expectation2 :: k1) = expectation1 -/- expectation2
- module Test.TypeSpec
Crazy Type operators for It
type (--*) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
Alias for It
, note that the number of ~
s is alway a multiple of 3. This
provides the impression of an underlined title followed by other expectations.
It allows to write the following type:
type ExpectationWithTitle = TypeSpec ( "This is a title for some assertions:" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (2 + 2) `Is` 4 )
type (~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
type (~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) (title :: Symbol) (expr :: expectation) = It title expr infixr 3 Source #
Crazy Type operators for TypeSpec
type (###) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
Create a TypeSpec
with an initial description or title followed by some
expectations. Note that the number of #
s is alway a multiple of 3.
It allows to rewrite the example above in a shorter way:
type ExpectationWithTitleShorter = "This is a title for some assertions:" ###################################### (2 + 2) `Is` 4
type (#########) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (############) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (###############) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (##################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (#####################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (########################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (###########################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (##############################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (#################################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (####################################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (#######################################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (##########################################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (#############################################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (################################################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (###################################################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (######################################################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (#########################################################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (############################################################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (###############################################################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (##################################################################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (#####################################################################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
type (########################################################################) (title :: Symbol) (expr :: expectation) = Explain title expr infixr 1 Source #
Grouping Aliases
type (-*) (expectation1 :: k) (expectation2 :: k1) = expectation1 -/- expectation2 infixr 4 Source #
Crazy operator alias for -/-
.
Make a list of expectations. The precedence of this operator is even higher
than that of -*-
.
type (-*-) (expectation1 :: k) (expectation2 :: k1) = expectation1 -/- expectation2 infixr 3 Source #
Crazy operator alias for -/-
with higher precedence.
It allows to group expectations more beautiful than using type level lists.
specCrazyMoreNested :: "Title" ###### "Top-level " ~~~~~~~~~~~~ "Nested:" ~~~~~~~~~ Int `Is` Int -*- Int `Is` Int -*- Int `Is` Int -/- "Top-level " ~~~~~~~~~~~~ "Nested:" ~~~~~~~~~ Int `Is` Int -*- "Nested:" ~~~~~~~~~ Int `Is` Int -*- Int `Is` Int specCrazyMoreNested = Valid
module Test.TypeSpec