Skip to content

Commit

Permalink
close nim-lang#13196 now that we have dragonbox
Browse files Browse the repository at this point in the history
  • Loading branch information
timotheecour committed Jun 21, 2021
1 parent ad70a65 commit f48a33a
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
11 changes: 11 additions & 0 deletions tests/stdlib/tjson.nim
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ import std/[json,parsejson,strutils]
from std/math import isNaN
when not defined(js):
import std/streams
import stdtest/testutils
from std/fenv import epsilon

proc testRoundtrip[T](t: T, expected: string) =
# checks that `T => json => T2 => json2` is such that json2 = json
Expand Down Expand Up @@ -325,6 +327,15 @@ block: # bug #18007
let a = parseJson($(%NaN)).to(float)
doAssert a.isNaN

whenRuntimeJs: discard # refs bug #18009
do:
testRoundtripVal(0.0): "0.0"
testRoundtripVal(-0.0): "-0.0"

block: # bug #15397, bug #13196
testRoundtripVal(1.0 + epsilon(float64)): "1.0000000000000002"
testRoundtripVal(0.12345678901234567890123456789): "0.12345678901234568"

block:
let a = "18446744073709551615"
let b = a.parseJson
Expand Down
11 changes: 11 additions & 0 deletions tests/stdlib/tjsonutils.nim
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ discard """
import std/jsonutils
import std/json
from std/math import isNaN, signbit
from std/fenv import epsilon
from stdtest/testutils import whenRuntimeJs

proc testRoundtrip[T](t: T, expected: string) =
Expand Down Expand Up @@ -160,6 +161,16 @@ template fn() =
doAssert b[2].signbit
doAssert not b[3].signbit

block: # bug #15397, bug #13196
let a = 0.1
let x = 0.12345678901234567890123456789
let b = (a + 0.2, 0.3, x)
testRoundtripVal(b): "[0.30000000000000004,0.3,0.12345678901234568]"

testRoundtripVal(0.12345678901234567890123456789): "0.12345678901234568"
testRoundtripVal(epsilon(float64)): "2.220446049250313e-16"
testRoundtripVal(1.0 + epsilon(float64)): "1.0000000000000002"

block: # case object
type Foo = object
x0: float
Expand Down

0 comments on commit f48a33a

Please sign in to comment.