Testament: refactoring; makes the test joiner green

This commit is contained in:
Araq 2018-12-06 16:37:56 +01:00
commit 3b783f7e13
28 changed files with 176 additions and 230 deletions

View file

@ -18,5 +18,5 @@ const
(s: "hi", x: 69, y: 45, z: 0.0, chars: {'a', 'b', 'c'}),
(s: "hi", x: 69, y: 45, z: 1.0, chars: {'a'})]
write(stdout, things[0].x)
writeLine(stdout, things[0].x)
#OUT 69

View file

@ -85,13 +85,13 @@ block tnestif:
if x == 0:
write(stdout, "i == 0")
if y == 0:
write(stdout, x)
writeLine(stdout, x)
else:
write(stdout, y)
writeLine(stdout, y)
elif x == 1:
write(stdout, "i == 1")
writeLine(stdout, "i == 1")
elif x == 2:
write(stdout, "i == 2")
writeLine(stdout, "i == 2")
else:
write(stdout, "looks like Python")
writeLine(stdout, "looks like Python")
#OUT i == 2

View file

@ -1,14 +1,15 @@
discard """
output: "Nim 3.4368930843, 0.3299290698 C double: 3.4368930843, 0.3299290698"
output: '''
Nim 3.4368930843, 0.3299290698
C double: 3.4368930843, 0.3299290698'''
"""
import math, strutils
{.emit: """
void printFloats(void) {
double y = 1.234567890123456789;
printf("C double: %.10f, %.10f ", exp(y), cos(y));
double y = 1.234567890123456789;
printf("C double: %.10f, %.10f\n", exp(y), cos(y));
}
""".}
@ -16,5 +17,5 @@ proc c_printf(frmt: cstring) {.importc: "printf", header: "<stdio.h>", varargs.}
proc printFloats {.importc, nodecl.}
var x: float = 1.234567890123456789
c_printf("Nim %.10f, %.10f ", exp(x), cos(x))
c_printf("Nim %.10f, %.10f\n", exp(x), cos(x))
printFloats()

View file

@ -25,3 +25,4 @@ for y in items(r2):
stdout.write(y)
#OUT helloworld99110223
stdout.write "\n"

View file

@ -101,4 +101,6 @@ when true:
for y in items(r2):
stdout.write(y)
stdout.write "\n"
#OUT helloworld99110223

View file

@ -32,3 +32,5 @@ c.add('A', "12")
c.add('B', "13")
for k, v in items(c):
stdout.write(" Key: ", $k, " value: ", v)
stdout.write "\n"

View file

@ -33,3 +33,4 @@ c.add('B', "13")
for k, v in items(c):
stdout.write(" Key: ", $k, " value: ", v)
stdout.write "\n"

View file

@ -1,6 +1,7 @@
discard """
output: '''
100 0
100
0
'''
"""
@ -72,7 +73,7 @@ block tgeneric1:
proc print[T](heap: PBinHeap[T]) =
for i in countup(0, heap.last):
stdout.write($heap.heap[i].data, " ")
stdout.write($heap.heap[i].data, "\n")
var heap: PBinHeap[int]

View file

@ -34,3 +34,4 @@ proc test(data: seq[int], value: int): seq[int] =
for x in items(test(@[1,2,3], 2)):
stdout.write(x)
stdout.write "\n"

View file

@ -2,9 +2,8 @@ discard """
output: "0123456789"
"""
# Test new countup and unary <
# Test new countup
for i in 0 .. < 10'i64:
for i in 0 ..< 10'i64:
stdout.write(i)
#OUT 0123456789
echo "\n"

View file

@ -10,3 +10,4 @@ for x in lines.split():
stdout.write(x)
#OUT abcxyz
stdout.write "\n"

View file

@ -31,3 +31,5 @@ proc wordWrap2(s: string, maxLineWidth = 80,
result = ""
for word, isSep in tokenize2(s, seps):
var w = 0
stdout.write "\n"

View file

@ -45,9 +45,9 @@ proc square(x:int): int =
let list = @[1,2,3,4,5,6,7,8,9]
echo ("--- evens")
for item in list / isEven : echo(item)
for item in list / isEven: echo(item)
echo ("--- squares")
for item in list >> square : echo(item)
for item in list >> square: echo(item)
#echo ("--- squares of evens, only")
# next line doesn't compile. Generic types are not inferred
#for item in list />> (isEven, square) : echo(item)

View file

@ -10,3 +10,5 @@ iterator iterAndZero(a: var openArray[int]): int =
var x = [[1, 2, 3], [4, 5, 6]]
for y in iterAndZero(x[0]): write(stdout, $y)
#OUT 123
write stdout, "\n"

View file

@ -70,3 +70,4 @@ var
s2 = formatStyleInterpolation"Hello ${bob}, ${sum(alice.len, bob.len, 2)}$$"
write(stdout, s1 & " | " & s2)
write(stdout, "\n")

View file

@ -8,10 +8,10 @@ type
TMatrix2x2*[T] = TMatrixNM[range[0..1], range[0..1], T]
TMatrix3x3*[T] = TMatrixNM[range[0..2], range[0..2], T]
proc test*[T] (matrix: TMatrix2x2[T]) =
proc test*[T](matrix: TMatrix2x2[T]) =
echo "wrong proc called"
proc test*[T] (matrix: TMatrix3x3[T]) =
proc test*[T](matrix: TMatrix3x3[T]) =
echo "right proc called"
var matrix: TMatrix3x3[float]

View file

@ -43,3 +43,4 @@ for i in 0..w-1:
for i in 0..w-1:
stdout.write(m[i,i]) #OUT 111
stdout.write "\n"

View file

@ -16,3 +16,4 @@ proc ack(x, y: int): int =
# echo(ack(0, 0))
write(stdout, ack(3, 4)) #OUT 125
write stdout, "\n"

View file

@ -29,4 +29,5 @@ proc mypos(sub, s: string, start: int = 0): int =
var sub = "hello"
var s = "world hello"
write(stdout, mypos(sub, s))
write stdout, "\n"
#OUT 6

View file

@ -203,3 +203,4 @@ block ttoseq:
stdout.write(x)
var y: type("a b c".split)
y = "xzy"
stdout.write("\n")

View file

@ -65,7 +65,7 @@ proc reindent*(value: string, preset_indent = 0): string =
make([ html, xml, glsl, js, css, rst ])
when true:
when isMainModule:
## Test tags
const script = js"""

View file

@ -84,3 +84,5 @@ proc use(r: var TResource) =
autoClose(r = openResource("test")):
use r
write stdout, "\n"

View file

@ -9,4 +9,4 @@ var
a, b: int = 4
write(stdout, a)
write(stdout, b) #OUT 44
writeLine(stdout, b) #OUT 44

View file

@ -70,8 +70,9 @@ block:
# Tests for VM ops
block:
static:
# for joint test, the project path is different
assert "vm" in getProjectPath() or "Nim" in getProjectPath()
# for joint test, the project path is different, so I disabled it:
when false:
assert "vm" in getProjectPath()
let b = getEnv("UNSETENVVAR")
assert b == ""