diff options
author | Daniil Yarancev <21169548+Yardanico@users.noreply.github.com> | 2018-01-07 21:02:00 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-07 21:02:00 +0300 |
commit | fb44c522e6173528efa8035ecc459c84887d0167 (patch) | |
tree | a2f5e98606be265981a5f72748896967033e23d7 /tests/float/tlenientops.nim | |
parent | ccf99fa5ce4fe992fb80dc89271faa51456c3fa5 (diff) | |
parent | e23ea64c41e101d4e1d933f0b015f51cc6c2f7de (diff) | |
download | Nim-fb44c522e6173528efa8035ecc459c84887d0167.tar.gz |
Merge pull request #1 from nim-lang/devel
upstream
Diffstat (limited to 'tests/float/tlenientops.nim')
-rw-r--r-- | tests/float/tlenientops.nim | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/tests/float/tlenientops.nim b/tests/float/tlenientops.nim new file mode 100644 index 000000000..586580670 --- /dev/null +++ b/tests/float/tlenientops.nim @@ -0,0 +1,100 @@ +discard """ + exitcode: 0 + output: "" +""" + +import lenientops + +proc `~=`[T](a, b: T): bool = abs(a - b) < 1e-7 + +block: # math binary operators + let i = 1 + let f = 2.0 + + doAssert i + f ~= 3 + doAssert f + i ~= 3 + + doAssert i - f ~= -1 + doAssert f - i ~= 1 + + doAssert i * f ~= 2 + doAssert f * i ~= 2 + + doAssert i / f ~= 0.5 + doAssert f / i ~= 2 + +block: # comparison operators + doAssert 1.int < 2.float + doAssert 1.float < 2.int + doAssert 1.int <= 2.float + doAssert 1.float <= 2.int + doAssert 2.int >= 1.float + doAssert 2.float >= 1.int + doAssert 2.int > 1.float + doAssert 2.float > 1.int + +block: # all type combinations + let i = 1 + let f = 2.0 + + doAssert i.int + f.float ~= 3 + doAssert i.int + f.float32 ~= 3 + doAssert i.int + f.float64 ~= 3 + doAssert i.int8 + f.float ~= 3 + doAssert i.int8 + f.float32 ~= 3 + doAssert i.int8 + f.float64 ~= 3 + doAssert i.int16 + f.float ~= 3 + doAssert i.int16 + f.float32 ~= 3 + doAssert i.int16 + f.float64 ~= 3 + doAssert i.int32 + f.float ~= 3 + doAssert i.int32 + f.float32 ~= 3 + doAssert i.int32 + f.float64 ~= 3 + doAssert i.int64 + f.float ~= 3 + doAssert i.int64 + f.float32 ~= 3 + doAssert i.int64 + f.float64 ~= 3 + doAssert i.uint + f.float ~= 3 + doAssert i.uint + f.float32 ~= 3 + doAssert i.uint + f.float64 ~= 3 + doAssert i.uint8 + f.float ~= 3 + doAssert i.uint8 + f.float32 ~= 3 + doAssert i.uint8 + f.float64 ~= 3 + doAssert i.uint16 + f.float ~= 3 + doAssert i.uint16 + f.float32 ~= 3 + doAssert i.uint16 + f.float64 ~= 3 + doAssert i.uint32 + f.float ~= 3 + doAssert i.uint32 + f.float32 ~= 3 + doAssert i.uint32 + f.float64 ~= 3 + doAssert i.uint64 + f.float ~= 3 + doAssert i.uint64 + f.float32 ~= 3 + doAssert i.uint64 + f.float64 ~= 3 + + doAssert f.float + i.int ~= 3 + doAssert f.float32 + i.int ~= 3 + doAssert f.float64 + i.int ~= 3 + doAssert f.float + i.int8 ~= 3 + doAssert f.float32 + i.int8 ~= 3 + doAssert f.float64 + i.int8 ~= 3 + doAssert f.float + i.int16 ~= 3 + doAssert f.float32 + i.int16 ~= 3 + doAssert f.float64 + i.int16 ~= 3 + doAssert f.float + i.int32 ~= 3 + doAssert f.float32 + i.int32 ~= 3 + doAssert f.float64 + i.int32 ~= 3 + doAssert f.float + i.int64 ~= 3 + doAssert f.float32 + i.int64 ~= 3 + doAssert f.float64 + i.int64 ~= 3 + doAssert f.float + i.uint ~= 3 + doAssert f.float32 + i.uint ~= 3 + doAssert f.float64 + i.uint ~= 3 + doAssert f.float + i.uint8 ~= 3 + doAssert f.float32 + i.uint8 ~= 3 + doAssert f.float64 + i.uint8 ~= 3 + doAssert f.float + i.uint16 ~= 3 + doAssert f.float32 + i.uint16 ~= 3 + doAssert f.float64 + i.uint16 ~= 3 + doAssert f.float + i.uint32 ~= 3 + doAssert f.float32 + i.uint32 ~= 3 + doAssert f.float64 + i.uint32 ~= 3 + doAssert f.float + i.uint64 ~= 3 + doAssert f.float32 + i.uint64 ~= 3 + doAssert f.float64 + i.uint64 ~= 3 |