Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve test coverage #3

Closed
Qqwy opened this issue Jul 6, 2020 · 2 comments
Closed

Improve test coverage #3

Qqwy opened this issue Jul 6, 2020 · 2 comments
Labels
enhancement New feature or request

Comments

@Qqwy
Copy link
Owner

Qqwy commented Jul 6, 2020

The library already has quite a few tests, but before we reach a stable release, we at least need to make sure to cover also:

  • All builtin types
    • The return results of their successful/unsuccessful checks (therefore testing if the checking-code itself works).
    • Their StreamData generators.
    • That they can be represented correctly when inspected (which is paramount for the error formatting to be correct)
  • All paths of the default formatter.
  • All of the functions/macros in TypeCheck and TypeCheck.Type.
@Qqwy Qqwy added the enhancement New feature or request label Jul 6, 2020
@Qqwy Qqwy added this to the Stable version milestone Jul 6, 2020
@Qqwy
Copy link
Owner Author

Qqwy commented Nov 15, 2020

Current mix test --cover results:

Percentage | Module
-----------|--------------------------
   100.00% | Inspect.TypeCheck.Builtin.Any
   100.00% | Inspect.TypeCheck.Builtin.Atom
   100.00% | Inspect.TypeCheck.Builtin.Binary
   100.00% | Inspect.TypeCheck.Builtin.Bitstring
   100.00% | Inspect.TypeCheck.Builtin.Boolean
   100.00% | Inspect.TypeCheck.Builtin.FixedList
   100.00% | Inspect.TypeCheck.Builtin.FixedMap
   100.00% | Inspect.TypeCheck.Builtin.FixedTuple
   100.00% | Inspect.TypeCheck.Builtin.Float
   100.00% | Inspect.TypeCheck.Builtin.Guarded
   100.00% | Inspect.TypeCheck.Builtin.Integer
   100.00% | Inspect.TypeCheck.Builtin.List
   100.00% | Inspect.TypeCheck.Builtin.Literal
   100.00% | Inspect.TypeCheck.Builtin.Map
   100.00% | Inspect.TypeCheck.Builtin.NamedType
   100.00% | Inspect.TypeCheck.Builtin.NegInteger
   100.00% | Inspect.TypeCheck.Builtin.NonNegInteger
   100.00% | Inspect.TypeCheck.Builtin.None
   100.00% | Inspect.TypeCheck.Builtin.Number
   100.00% | Inspect.TypeCheck.Builtin.OneOf
   100.00% | Inspect.TypeCheck.Builtin.PosInteger
   100.00% | Inspect.TypeCheck.Builtin.Range
   100.00% | Inspect.TypeCheck.Builtin.Tuple
     0.00% | Inspect.TypeCheck.Spec
    52.94% | TypeCheck
    55.84% | TypeCheck.Builtin
   100.00% | TypeCheck.Builtin.Any
   100.00% | TypeCheck.Builtin.Atom
   100.00% | TypeCheck.Builtin.Binary
   100.00% | TypeCheck.Builtin.Bitstring
   100.00% | TypeCheck.Builtin.Boolean
   100.00% | TypeCheck.Builtin.FixedList
   100.00% | TypeCheck.Builtin.FixedMap
   100.00% | TypeCheck.Builtin.FixedTuple
   100.00% | TypeCheck.Builtin.Float
     0.00% | TypeCheck.Builtin.Function
    28.57% | TypeCheck.Builtin.Guarded
   100.00% | TypeCheck.Builtin.Integer
    66.67% | TypeCheck.Builtin.Lazy
   100.00% | TypeCheck.Builtin.List
   100.00% | TypeCheck.Builtin.Literal
   100.00% | TypeCheck.Builtin.Map
   100.00% | TypeCheck.Builtin.NamedType
   100.00% | TypeCheck.Builtin.NegInteger
   100.00% | TypeCheck.Builtin.NonNegInteger
   100.00% | TypeCheck.Builtin.None
   100.00% | TypeCheck.Builtin.Number
     0.00% | TypeCheck.Builtin.OneOf
   100.00% | TypeCheck.Builtin.PosInteger
   100.00% | TypeCheck.Builtin.Range
    75.00% | TypeCheck.Builtin.Tuple
    75.00% | TypeCheck.Inspect
    60.61% | TypeCheck.Internals.PreExpander
    22.86% | TypeCheck.Internals.ToTypespec
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.Any
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.Atom
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.Binary
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.Bitstring
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.Boolean
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.FixedList
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.FixedMap
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.FixedTuple
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.Float
     0.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.Function
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.Integer
     0.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.Lazy
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.List
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.Literal
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.Map
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.NamedType
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.NegInteger
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.NonNegInteger
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.None
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.Number
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.PosInteger
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.Range
   100.00% | TypeCheck.Internals.UserTypes.TypeCheck.Builtin.Tuple
     0.00% | TypeCheck.Internals.UserTypes.TypeCheck.TypeError.Formatter
    88.68% | TypeCheck.Macros
   100.00% | TypeCheck.Protocols.Inspect.Any
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.Any
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.Atom
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.Binary
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.Bitstring
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.Boolean
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.FixedList
    60.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.FixedMap
    80.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.FixedTuple
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.Float
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.Function
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.Guarded
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.Integer
     0.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.Lazy
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.List
    50.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.Literal
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.Map
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.NamedType
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.NegInteger
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.NonNegInteger
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.None
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.Number
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.OneOf
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.PosInteger
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.Range
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Builtin.Tuple
   100.00% | TypeCheck.Protocols.Inspect.TypeCheck.Spec
     0.00% | TypeCheck.Protocols.Inspect.TypeCheck.Type.StreamData
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.Any
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.Atom
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.Binary
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.Bitstring
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.Boolean
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.FixedList
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.FixedMap
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.FixedTuple
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.Float
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.Function
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.Guarded
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.Integer
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.Lazy
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.List
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.Literal
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.Map
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.NamedType
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.NegInteger
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.NonNegInteger
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.None
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.Number
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.OneOf
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.PosInteger
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.Range
   100.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Builtin.Tuple
     0.00% | TypeCheck.Protocols.ToCheck.TypeCheck.Type.StreamData
   100.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.Any
   100.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.Atom
     0.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.Binary
     0.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.Bitstring
     0.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.Boolean
     0.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.FixedList
   100.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.FixedMap
   100.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.FixedTuple
     0.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.Float
     0.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.Function
     0.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.Guarded
   100.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.Integer
   100.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.Lazy
   100.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.List
   100.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.Literal
   100.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.Map
   100.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.NamedType
     0.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.NegInteger
   100.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.NonNegInteger
     0.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.None
     0.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.Number
    83.33% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.OneOf
     0.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.PosInteger
     0.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.Range
   100.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Builtin.Tuple
    50.00% | TypeCheck.Protocols.ToStreamData.TypeCheck.Type.StreamData
    64.71% | TypeCheck.Spec
    81.25% | TypeCheck.Type
    13.33% | TypeCheck.Type.StreamData
   100.00% | TypeCheck.TypeError
    80.95% | TypeCheck.TypeError.DefaultFormatter
   100.00% | TypeCheck.TypeError.Formatter
-----------|--------------------------
    71.00% | Total

@Qqwy
Copy link
Owner Author

Qqwy commented Sep 25, 2021

Current test coverage is > 85%, which seems reasonably high.

We're now also tracking coverage using a badge in the repo.

@Qqwy Qqwy closed this as completed Sep 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant