Skip to content
Snippets Groups Projects
  1. Mar 12, 2013
  2. Mar 11, 2013
  3. Mar 08, 2013
  4. Mar 06, 2013
  5. Mar 05, 2013
  6. Mar 04, 2013
    • Iustin Pop's avatar
      Switch Attoparsec parser from double to rational · d58d44f3
      Iustin Pop authored
      
      According to the documentation, “This function is almost ten times
      faster than rational, but is slightly less accurate. For 94.2% of
      numbers, this function and rational give identical results, but for
      the remaining 5.8%, this function loses precision around the 15th
      decimal place. For 0.001% of numbers, this function will lose
      precision at the 13th or 14th decimal place.”. What happens is that
      for our tests, it can happen that “Attoparsec.double (show a_double)”
      is quite different from “a_double”, such that we have much more than
      1e-12 absolute difference.
      
      Since our xm lists should not be too big, I think switching to
      rational is better. Next patch also changes the way we compare
      doubles, so maybe this patch is not really needed…
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichele Tartara <mtartara@google.com>
      d58d44f3
    • Iustin Pop's avatar
      Make the XmParser config test runtime more consistent · 1fe0e999
      Iustin Pop authored
      
      Currently, the test uses a frequency of 5 string/5 double/1 list for
      generating Arbitrary instances of ListConfig. However, the list case
      has simply a "choose (1, 20)" `vectorOf` arbitrary, which means it
      could recurse forever.
      
      Manually running only this test gives runtime as such:
      
      - ~100-200ms: very often
      - ~1-2s: often
      - ~5s: rare
      - ~20s: very rare (but I hit this when running < 30 times the test,
        so…)
      
      On average, this makes this test one of the slowest ones, which is
      annoying.
      
      By changing to a sized generator, we can control the depth of the
      recursion, ensuring that we have a consistent runtime: out of 100
      runs, one is 229ms, one is 164ms, the other are 80-120ms.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      1fe0e999
    • Iustin Pop's avatar
      Improve output of the XmParser config test · a7e76dc3
      Iustin Pop authored
      
      Currently, this tests and its helper function 'isAlmostEqual' uses
      plain booleans to signify failures, which means you can't really debug
      a failed test. The patch changes the call chain to use annotated
      properties all through, which results in messages like:
      
        Failing almost equal check
        Delta 3.725290298461914e-9 not smaller than 1e-12
        expected: 2.147785408767952e7
         but got: 2.1477854087679517e7
      
      which (IMHO) it's much more readable.
      
      The patch also replaces a 'fail' with 'failTest' in another test.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      a7e76dc3
Loading