aiken/examples/acceptance_tests/040/lib/tests.ak

142 lines
2.7 KiB
Plaintext

use aiken/builtin
pub type Door {
angle: Int,
locked: Bool,
}
pub type Car {
Honda { remote_connect: ByteArray, owner: ByteArray, wheels: Int }
Ford {
remote_connect: ByteArray,
owner: ByteArray,
wheels: Int,
truck_bed_limit: Int,
car_doors: List<Door>,
}
}
test expect_ford1() {
let initial_car =
builtin.constr_data(
1,
[
builtin.b_data(#""),
builtin.b_data(#""),
builtin.i_data(4),
builtin.i_data(10000),
builtin.list_data([]),
],
)
expect Ford { owner, wheels, truck_bed_limit, .. }: Car = initial_car
owner == #"" && ( wheels == 4 && truck_bed_limit == 10000 )
}
test expect_ford2() {
let initial_car =
Ford {
remote_connect: #"",
owner: #"2222222222",
wheels: 6,
truck_bed_limit: 15000,
car_doors: [],
}
expect Ford { owner, wheels, remote_connect, .. } = initial_car
owner == #"2222222222" && ( wheels == 6 && remote_connect == #"" )
}
test expect_list1() {
let initial_car =
[5, 6, 7]
expect [a, b, c] = initial_car
a == 5 && ( b == 6 && c == 7 )
}
test expect_list2() {
let initial_car =
[5, 6, 7]
expect [a, ..d] = initial_car
a == 5 && d == [6, 7]
}
test expect_list3() {
let initial_car =
builtin.list_data([builtin.i_data(5), builtin.i_data(6), builtin.i_data(7)])
expect [a, ..d]: List<Int> = initial_car
a == 5 && d == [6, 7]
}
test expect_list4() {
let initial_car =
[4, 5, 6, 7]
expect [a, b, ..] = initial_car
a == 4 && b == 5
}
test expect_list5() {
let initial_car: Data =
[4, 6, 6]
expect [a, b, ..]: List<Int> = initial_car
a == 4 && b == 6
}
test expect_list6() {
let initial_car =
[4, 6]
expect [a, b, ..] = initial_car
a == 4 && b == 6
}
test expect_list7() {
let initial_car: Data =
[4, 6]
expect [a, b, ..]: List<Int> = initial_car
a == 4 && b == 6
}
test expect_list8() fail {
let initial_car =
[4, 6]
expect [a] = initial_car
a == 4
}
test expect_list9() fail {
let initial_car: Data =
[4, 6, 7]
expect [a]: List<Int> = initial_car
a == 4
}
test expect_list10() {
let initial_car: Data =
[4]
expect [a]: List<Int> = initial_car
a == 4
}
type Redeemer {
CreateVoteBatch { id: ByteArray }
}
test single_field_let() {
let redeemer = CreateVoteBatch { id: #"" }
let CreateVoteBatch { id } = redeemer
id == #""
}
test single_field_expect() {
let redeemer: Data = CreateVoteBatch { id: #"" }
expect CreateVoteBatch { id }: Redeemer = redeemer
id == #""
}
test single_when() {
let redeemer = CreateVoteBatch { id: #"" }
let x =
when redeemer is {
CreateVoteBatch { id } -> id == #""
}
x == True
}