stephan-tolksdorf / fparsec

A parser combinator library for F#
523 stars 45 forks source link

Modernize FParsec's test framework #99

Open BennieCopeland opened 1 year ago

BennieCopeland commented 1 year ago

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

BennieCopeland commented 1 year ago

@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 commented 1 year ago

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.