Adds smaller code samples from Chapters 1-3 to the tester.
This commit is contained in:
parent
8081a9b3d0
commit
9e86237855
11 changed files with 642 additions and 1 deletions
93
tests/niminaction/Chapter3/various3.nim
Normal file
93
tests/niminaction/Chapter3/various3.nim
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
import threadpool
|
||||
proc foo: string = "Dog"
|
||||
var x: FlowVar[string] = spawn foo()
|
||||
assert(^x == "Dog")
|
||||
|
||||
block:
|
||||
type
|
||||
Box = object
|
||||
case empty: bool
|
||||
of false:
|
||||
contents: string
|
||||
else:
|
||||
discard
|
||||
|
||||
var obj = Box(empty: false, contents: "Hello")
|
||||
assert obj.contents == "Hello"
|
||||
|
||||
var obj2 = Box(empty: true)
|
||||
doAssertRaises(FieldError):
|
||||
echo(obj2.contents)
|
||||
|
||||
import json
|
||||
assert parseJson("null").kind == JNull
|
||||
assert parseJson("true").kind == JBool
|
||||
assert parseJson("42").kind == JInt
|
||||
assert parseJson("3.14").kind == JFloat
|
||||
assert parseJson("\"Hi\"").kind == JString
|
||||
assert parseJson("""{ "key": "value" }""").kind == JObject
|
||||
assert parseJson("[1, 2, 3, 4]").kind == JArray
|
||||
|
||||
import json
|
||||
let data = """
|
||||
{"username": "Dominik"}
|
||||
"""
|
||||
|
||||
let obj = parseJson(data)
|
||||
assert obj.kind == JObject
|
||||
assert obj["username"].kind == JString
|
||||
assert obj["username"].str == "Dominik"
|
||||
|
||||
block:
|
||||
proc count10(): int =
|
||||
for i in 0 .. <10:
|
||||
result.inc
|
||||
assert count10() == 10
|
||||
|
||||
type
|
||||
Point = tuple[x, y: int]
|
||||
|
||||
var point = (5, 10)
|
||||
var point2 = (x: 5, y: 10)
|
||||
|
||||
type
|
||||
Human = object
|
||||
name: string
|
||||
age: int
|
||||
|
||||
var jeff = Human(name: "Jeff", age: 23)
|
||||
var amy = Human(name: "Amy", age: 20)
|
||||
|
||||
import asyncdispatch
|
||||
|
||||
var future = newFuture[int]()
|
||||
doAssert(not future.finished)
|
||||
|
||||
future.callback =
|
||||
proc (future: Future[int]) =
|
||||
echo("Future is no longer empty, ", future.read)
|
||||
|
||||
future.complete(42)
|
||||
|
||||
import asyncdispatch, asyncfile
|
||||
|
||||
when false:
|
||||
var file = openAsync("")
|
||||
let dataFut = file.readAll()
|
||||
dataFut.callback =
|
||||
proc (future: Future[string]) =
|
||||
echo(future.read())
|
||||
|
||||
asyncdispatch.runForever()
|
||||
|
||||
import asyncdispatch, asyncfile, os
|
||||
|
||||
proc readFiles() {.async.} =
|
||||
# --- Changed to getTempDir here.
|
||||
var file = openAsync(getTempDir() / "test.txt", fmReadWrite)
|
||||
let data = await file.readAll()
|
||||
echo(data)
|
||||
await file.write("Hello!\n")
|
||||
|
||||
waitFor readFiles()
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue