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

Modernize FParsec's test framework #99

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

BennieCopeland
Copy link

@BennieCopeland BennieCopeland commented Jan 11, 2023

Preliminary work on updating FParsec's test framework to utilize Xunit and FsCheck property based tests to resolve issue #96.

  • BufferTests
  • CharSetTests
  • HexFloatTests
  • TextTests
  • CloningTests
  • StringBufferTests
  • CharStreamTests
  • PrimitivesTests
  • CharParsersTests
  • IdentifierValidatorTests
  • OperatorPrecedenceParserTests
  • RangeTests
  • StaticMappingTests
  • Generator and Shrink tests for custom FsCheck generators
  • Identify and implement missing tests based on code coverage

@BennieCopeland BennieCopeland changed the title Modernize FParsec's test framework #96 Modernize FParsec's test framework Jan 11, 2023
@BennieCopeland
Copy link
Author

@stephan-tolksdorf Can you take a look at the latest commit? How important is it to have all of those floatOfHexString tests? I have a property test that shows that floatToHexString and floatOfHexString are reciprocal. Except for some of the more interesting examples like bad formats or Infinity, I don't see what the value is of the oddly formatted versions of 1 or -1.

@stephan-tolksdorf
Copy link
Owner

Thanks for working on this! I didn't have time to take a detailed look, but originally I tried to cover all possible code paths and special cases. Normally extra cases don't hurt, so if this doesn't imply significant extra work, I'd just convert all test cases, also because it simplifies the review.

Btw, it's not worth investing time into the CloningTests and StringBufferTests I think, because the underlying functionality will go away in the future.

@teo-tsirpanis teo-tsirpanis linked an issue Feb 27, 2023 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Use a third-party testing framework.
2 participants