Files
kraken/tests/test_serialization.krak

72 lines
1.9 KiB
Plaintext
Raw Normal View History

2015-08-21 11:03:10 -04:00
import io:*
import serialize:*
import string:*
2015-08-24 20:40:18 -04:00
import util:*
import vector:*
import vector_literals:*
import map:*
2015-08-21 11:03:10 -04:00
fun main():int {
var intA = 7
write_file_binary(string("bintest.bin"), serialize(intA))
2015-08-24 20:40:18 -04:00
var intAout = unserialize<int>(read_file_binary(string("bintest.bin")))
2015-08-21 11:03:10 -04:00
print(intA)
print(" = ")
2015-08-24 20:40:18 -04:00
println(intAout)
// ok, lets do more than one
var intB = 9
var intC = 11
write_file_binary(string("bintest.bin"), serialize(intB) + serialize(intC))
var bin = read_file_binary(string("bintest.bin"))
// remember, these are pairs
var intBout: int
var intCout: int
var pos = 0
unpack(intBout, pos) = unserialize<int>(bin, pos)
unpack(intCout, pos) = unserialize<int>(bin, pos)
print(intB)
print(" , ")
print(intC)
print(" = ")
print(intBout)
print(" , ")
println(intCout)
// ok, lets do a vector
write_file_binary(string("bintest.bin"), serialize(vector(1,2,3,4,5)))
bin = read_file_binary(string("bintest.bin"))
var back = vector<int>()
pos = 0
unpack(back, pos) = unserialize<vector<int>>(bin, 0)
back.for_each(fun(i: int) { print(i); print(" "); })
println()
// ok, lets do a string
write_file_binary(string("bintest.bin"), serialize(string("hello serialize")))
bin = read_file_binary(string("bintest.bin"))
var backStr = string()
pos = 0
unpack(backStr, pos) = unserialize<string>(bin, 0)
println(backStr)
// ok, lets do a map
var m = map(3, 2.7)
m.set(50, 3.14159)
write_file_binary(string("bintest.bin"), serialize(m))
bin = read_file_binary(string("bintest.bin"))
var backM = map<int,double>()
pos = 0
unpack(backM, pos) = unserialize<map<int,double>>(bin, 0)
backM.for_each(fun(key: int, value: double) {
print(key)
print(" = ")
println(value)
})
2015-08-21 11:03:10 -04:00
return 0
}