spo/sim/test/sim_test.gleam

47 lines
1 KiB
Gleam

import gleeunit
import sim/device
import sim/memory
pub fn main() -> Nil {
gleeunit.main()
}
// gleeunit test functions end in `_test`
pub fn hello_world_test() {
let name = "Joe"
let greeting = "Hello, " <> name <> "!"
assert greeting == "Hello, Joe!"
}
pub fn pad_test() {
assert <<1, 2, 3, 0>> == memory.pad_to_length(<<1, 2, 3>>, 32)
}
pub fn insert_test() {
assert <<1, 2, 3, 4>> == memory.insert_at(<<1, 2, 3>>, 3, <<4>>)
assert <<1, 2, 3, 0, 5>> == memory.insert_at(<<1, 2, 3>>, 4, <<5>>)
assert <<1, 67, 3>> == memory.insert_at(<<1, 2, 3>>, 1, <<67>>)
}
pub fn open_test() {
let d0 = device.open("0")
device.close(d0)
}
pub fn test_device_test() {
let d1 = device.open("1")
assert <<>> == device.read(d1).0
let d1 = device.test_device(d1)
assert d1.has_data == True
let #(char, d1) = device.read(d1)
assert <<"a">> == char
assert d1.has_data == False
assert <<>> == device.read(d1).0
device.close(d1)
let d0 = device.open("0")
let d0 = device.test_device(d0)
assert d0.has_data == False
device.close(d0)
}