* continue fixing #13744 * improve style * improve test Co-authored-by: cooldome <ariabushenko@bk.ru>
63 lines
1.2 KiB
Nim
63 lines
1.2 KiB
Nim
discard """
|
|
output: '''
|
|
@[1.0, 2.0, 3.0]
|
|
@[1.0, 2.0, 3.0]
|
|
'''
|
|
"""
|
|
|
|
# bug #6406
|
|
|
|
import sequtils
|
|
|
|
proc remap1(s: seq[int], T: typedesc): seq[T] =
|
|
s.map do (x: int) -> T:
|
|
x.T
|
|
|
|
proc remap2[T](s: seq[int], typ: typedesc[T]): seq[T] =
|
|
s.map do (x: int) -> T:
|
|
x.T
|
|
|
|
echo remap1(@[1,2,3], float)
|
|
echo remap2(@[1,2,3], float)
|
|
|
|
|
|
#--------------------------------------------------------------------
|
|
# conversion to bool, issue #13744
|
|
proc test_conv_to_bool =
|
|
var
|
|
i0 = 0
|
|
i1 = 1
|
|
ih = high(uint)
|
|
il = low(int)
|
|
|
|
f0 = 0.0
|
|
f1 = 1.0
|
|
fh = Inf
|
|
fl = -Inf
|
|
f_nan = NaN
|
|
|
|
doAssert(bool(i0) == false)
|
|
doAssert(bool(i1) == true)
|
|
doAssert(bool(-i1) == true)
|
|
doAssert(bool(il) == true)
|
|
doAssert(bool(ih) == true)
|
|
|
|
doAssert(bool(f0) == false)
|
|
doAssert(bool(-f0) == false)
|
|
doAssert(bool(f1) == true)
|
|
doAssert(bool(-f1) == true)
|
|
doAssert(bool(fh) == true)
|
|
doAssert(bool(fl) == true)
|
|
doAssert(bool(fnan) == true) # NaN to bool gives true according to standard
|
|
|
|
|
|
static:
|
|
doAssert(bool(0) == false)
|
|
doAssert(bool(-1) == true)
|
|
doAssert(bool(2) == true)
|
|
doAssert(bool(NaN) == true)
|
|
doAssert(bool(0.0) == false)
|
|
doAssert(bool(-0.0) == false)
|
|
test_conv_to_bool()
|
|
test_conv_to_bool()
|
|
|