75 lines
1.7 KiB
Plaintext
75 lines
1.7 KiB
Plaintext
type Row {
|
|
name: Text
|
|
count: Int
|
|
}
|
|
|
|
sign(value: Int < 0) (answer: Int) pure {
|
|
answer = -1
|
|
}
|
|
sign(value: 0) (answer: Int) pure {
|
|
answer = 0
|
|
}
|
|
sign(value: Int > 0) (answer: Int) pure {
|
|
answer = 1
|
|
}
|
|
|
|
main() (answer: Int) {
|
|
answer = sum([10, 20, 11]) + sign(3)
|
|
}
|
|
|
|
copyCheck() (answer: Bool) {
|
|
original = Row { name = "初始"
|
|
count = 1 }
|
|
changed = original
|
|
changed.name = "修改"
|
|
answer = original.name == "初始" and changed.name == "修改"
|
|
}
|
|
|
|
join(first: Text, second: Text) (answer: Text) pure {
|
|
answer = first + second
|
|
}
|
|
|
|
textCheck() (answer: Text) {
|
|
value = "雪"
|
|
joined = join(value, value)
|
|
answer = joined + value
|
|
}
|
|
|
|
increment(value: Int) (answer: Int) pure {
|
|
answer = value + 1
|
|
}
|
|
|
|
overflowCheck() (answer: Int) {
|
|
answer = increment(9223372036854775807)
|
|
}
|
|
|
|
change(value: Row) (answer: Row) {
|
|
value.name = value.name + "新"
|
|
answer = value
|
|
}
|
|
|
|
pair(value: Int) (count: Int, name: Text) pure {
|
|
count = value
|
|
name = "雪"
|
|
}
|
|
|
|
total(values: List<Int>) (answer: Int) pure {
|
|
answer = sum(values)
|
|
}
|
|
|
|
verify() (answer: Bool) {
|
|
original = Row { name = "雪"
|
|
count = 1 }
|
|
changed = change(original)
|
|
values = [1, 2, 3]
|
|
result = pair(42)
|
|
decimal = 1 / 8
|
|
floating = 1.5e0 + 2.0e0
|
|
skipped = false and overflowCheck() > 0
|
|
answer = main() == 42 and copyCheck() and textCheck() == "雪雪雪" and original.name == "雪" and changed.name == "雪新" and total(values) == 6 and sum(values) == 6 and result.count == 42 and result.name == "雪" and decimal == 0.125 and floating == 3.5e0 and not skipped and length("雪山") == 2 and sign(-3) == -1 and sign(0) == 0
|
|
}
|
|
|
|
arithmetic(value: Int) (answer: Int) pure {
|
|
answer = (value * 3 + 7) // 2
|
|
}
|