6 ms·
> I'd be interested to see what a sufficiently strong QuickCheck specification of this problem would look like. I would write something like this in haskell:
by twanvl 6y ago
> I'd be interested to see what a sufficiently strong QuickCheck specification of this problem would look like.
I would write something like this in haskell:
spec :: [Integer] -> Property
spec xs =
length xs <= 2 ==> fun (intercalate "," (map show xs)) == sum xs
This captures the three requirements, but not the implicit fourth requirement that the function throws an exception for other inputs.
- masklinn 6y ago> not the implicit fourth requirement that the function throws an exception for other inputs. You could probably generate invalid inputs by taking a list of strings as input. Though of course at that point the property test has to reimplement half the function. That's an issue I often end up having with property tests: the oracle for interesting properties is as complex as the SUT, so you end up with two of them.
- tom_mellior 6y agoNor does this exercise the trimming of the substrings, for example. This is good for testing the happiest path, I agree. I was interested in the tedious testing of all the unhappy paths.