Fix and re-apply formatter on all acceptance tests
Less noise, pretty tuples. Everyone's happy.
This commit is contained in:
parent
5b7147fc43
commit
8c19d4ec08
|
@ -1,3 +1,3 @@
|
||||||
test foo() {
|
test foo() {
|
||||||
#(1, []) == #(1, [])
|
(1, []) == (1, [])
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
pub fn unzip(xs: List<#(a, b)>) -> #(List<a>, List<b>) {
|
pub fn unzip(xs: List<(a, b)>) -> (List<a>, List<b>) {
|
||||||
when xs is {
|
when xs is {
|
||||||
[] -> #([], [])
|
[] -> ([], [])
|
||||||
[#(a, b), ..rest] -> {
|
[(a, b), ..rest] -> {
|
||||||
let #(a_tail, b_tail) = unzip(rest)
|
let (a_tail, b_tail) = unzip(rest)
|
||||||
#([a, ..a_tail], [b, ..b_tail])
|
([a, ..a_tail], [b, ..b_tail])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
pub fn unzip(xs: List<#(a, b)>) -> #(List<a>, List<b>) {
|
pub fn unzip(xs: List<(a, b)>) -> (List<a>, List<b>) {
|
||||||
when xs is {
|
when xs is {
|
||||||
[] -> #([], [])
|
[] -> ([], [])
|
||||||
[#(a, b), ..rest] -> {
|
[(a, b), ..rest] -> {
|
||||||
let #(a_tail, b_tail) = unzip(rest)
|
let (a_tail, b_tail) = unzip(rest)
|
||||||
#([a, ..a_tail], [b, ..b_tail])
|
([a, ..a_tail], [b, ..b_tail])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
test unzip_1() {
|
test unzip_1() {
|
||||||
unzip([#(1, "a"), #(2, "b")]) == #([1, 2], ["a", "b"])
|
unzip([(1, "a"), (2, "b")]) == ([1, 2], ["a", "b"])
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
pub opaque type Map<key, value> {
|
pub opaque type Map<key, value> {
|
||||||
inner: List<#(key, value)>,
|
inner: List<(key, value)>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new() {
|
pub fn new() {
|
||||||
|
|
|
@ -16,4 +16,3 @@ test drop_1() {
|
||||||
let x = #[1, 2, 3, 4, 5, 6, 7]
|
let x = #[1, 2, 3, 4, 5, 6, 7]
|
||||||
drop(x, 2) == #[3, 4, 5, 6, 7]
|
drop(x, 2) == #[3, 4, 5, 6, 7]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
pub opaque type AssocList<key, value> {
|
pub opaque type AssocList<key, value> {
|
||||||
inner: List<#(key, value)>,
|
inner: List<(key, value)>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new() -> AssocList<key, value> {
|
pub fn new() -> AssocList<key, value> {
|
||||||
AssocList { inner: [] }
|
AssocList { inner: [] }
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn to_list(m: AssocList<key, value>) -> List<#(key, value)> {
|
pub fn to_list(m: AssocList<key, value>) -> List<(key, value)> {
|
||||||
m.inner
|
m.inner
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,17 +19,17 @@ pub fn insert(
|
||||||
}
|
}
|
||||||
|
|
||||||
fn do_insert(
|
fn do_insert(
|
||||||
elems: List<#(key, value)>,
|
elems: List<(key, value)>,
|
||||||
k: key,
|
k: key,
|
||||||
v: value,
|
v: value,
|
||||||
) -> List<#(key, value)> {
|
) -> List<(key, value)> {
|
||||||
when elems is {
|
when elems is {
|
||||||
[] -> [#(k, v)]
|
[] -> [(k, v)]
|
||||||
[#(k2, v2), ..rest] ->
|
[(k2, v2), ..rest] ->
|
||||||
if k == k2 {
|
if k == k2 {
|
||||||
[#(k, v), ..rest]
|
[(k, v), ..rest]
|
||||||
} else {
|
} else {
|
||||||
[#(k2, v2), ..do_insert(rest, k, v)]
|
[(k2, v2), ..do_insert(rest, k, v)]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -41,5 +41,5 @@ fn fixture_1() {
|
||||||
}
|
}
|
||||||
|
|
||||||
test to_list_2() {
|
test to_list_2() {
|
||||||
to_list(fixture_1()) == [#("foo", 42), #("bar", 14)]
|
to_list(fixture_1()) == [("foo", 42), ("bar", 14)]
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,5 +14,5 @@ pub fn map2(
|
||||||
}
|
}
|
||||||
|
|
||||||
test map2_3() {
|
test map2_3() {
|
||||||
map2(Some(14), Some(42), fn(a, b) { #(a, b) }) == Some(#(14, 42))
|
map2(Some(14), Some(42), fn(a, b) { (a, b) }) == Some((14, 42))
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
pub opaque type AssocList<key, value> {
|
pub opaque type AssocList<key, value> {
|
||||||
inner: List<#(key, value)>,
|
inner: List<(key, value)>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new() -> AssocList<key, value> {
|
pub fn new() -> AssocList<key, value> {
|
||||||
AssocList { inner: [] }
|
AssocList { inner: [] }
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn from_list(xs: List<#(key, value)>) -> AssocList<key, value> {
|
pub fn from_list(xs: List<(key, value)>) -> AssocList<key, value> {
|
||||||
AssocList { inner: do_from_list(xs) }
|
AssocList { inner: do_from_list(xs) }
|
||||||
}
|
}
|
||||||
|
|
||||||
fn do_from_list(xs: List<#(key, value)>) -> List<#(key, value)> {
|
fn do_from_list(xs: List<(key, value)>) -> List<(key, value)> {
|
||||||
when xs is {
|
when xs is {
|
||||||
[] -> []
|
[] -> []
|
||||||
[#(k, v), ..rest] -> do_insert(do_from_list(rest), k, v)
|
[(k, v), ..rest] -> do_insert(do_from_list(rest), k, v)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,35 +26,35 @@ pub fn insert(
|
||||||
}
|
}
|
||||||
|
|
||||||
fn do_insert(
|
fn do_insert(
|
||||||
elems: List<#(key, value)>,
|
elems: List<(key, value)>,
|
||||||
k: key,
|
k: key,
|
||||||
v: value,
|
v: value,
|
||||||
) -> List<#(key, value)> {
|
) -> List<(key, value)> {
|
||||||
when elems is {
|
when elems is {
|
||||||
[] -> [#(k, v)]
|
[] -> [(k, v)]
|
||||||
[#(k2, v2), ..rest] ->
|
[(k2, v2), ..rest] ->
|
||||||
if k == k2 {
|
if k == k2 {
|
||||||
[#(k, v), ..rest]
|
[(k, v), ..rest]
|
||||||
} else {
|
} else {
|
||||||
[#(k2, v2), ..do_insert(rest, k, v)]
|
[(k2, v2), ..do_insert(rest, k, v)]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn union(
|
pub fn union(
|
||||||
left left: AssocList<key, value>,
|
left: AssocList<key, value>,
|
||||||
right right: AssocList<key, value>,
|
right: AssocList<key, value>,
|
||||||
) -> AssocList<key, value> {
|
) -> AssocList<key, value> {
|
||||||
AssocList { inner: do_union(left.inner, right.inner) }
|
AssocList { inner: do_union(left.inner, right.inner) }
|
||||||
}
|
}
|
||||||
|
|
||||||
fn do_union(
|
fn do_union(
|
||||||
left: List<#(key, value)>,
|
left: List<(key, value)>,
|
||||||
right: List<#(key, value)>,
|
right: List<(key, value)>,
|
||||||
) -> List<#(key, value)> {
|
) -> List<(key, value)> {
|
||||||
when left is {
|
when left is {
|
||||||
[] -> right
|
[] -> right
|
||||||
[#(k, v), ..rest] -> do_union(rest, do_insert(right, k, v))
|
[(k, v), ..rest] -> do_union(rest, do_insert(right, k, v))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
fn is_negative(i: Int) -> Bool {
|
fn is_negative(i: Int) -> Bool {
|
||||||
if i < 0 {
|
if i < 0 {
|
||||||
trace("is negative")
|
trace("is negative")
|
||||||
|
|
||||||
True
|
True
|
||||||
} else {
|
} else {
|
||||||
trace("is non-negative")
|
trace("is non-negative")
|
||||||
|
|
||||||
False
|
False
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
test tuple_1() {
|
test tuple_1() {
|
||||||
let coordinates = #(14, 42)
|
let coordinates = (14, 42)
|
||||||
coordinates.1st == 14 && coordinates.2nd == 42
|
coordinates.1st == 14 && coordinates.2nd == 42
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/// An opaque `Dict`. The type is opaque because the module maintains some
|
/// An opaque `Dict`. The type is opaque because the module maintains some
|
||||||
/// invariant, namely: there's only one occurence of a given key in the dictionnary.
|
/// invariant, namely: there's only one occurence of a given key in the dictionnary.
|
||||||
pub opaque type Dict<key, value> {
|
pub opaque type Dict<key, value> {
|
||||||
inner: List<#(ByteArray, value)>,
|
inner: List<(ByteArray, value)>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn toList(self: Dict<ByteArray, value>) {
|
pub fn toList(self: Dict<ByteArray, value>) {
|
||||||
|
@ -32,33 +32,33 @@ pub fn union_with(
|
||||||
}
|
}
|
||||||
|
|
||||||
fn do_union_with(
|
fn do_union_with(
|
||||||
left: List<#(ByteArray, value)>,
|
left: List<(ByteArray, value)>,
|
||||||
right: List<#(ByteArray, value)>,
|
right: List<(ByteArray, value)>,
|
||||||
with: fn(ByteArray, value, value) -> Option<value>,
|
with: fn(ByteArray, value, value) -> Option<value>,
|
||||||
) -> List<#(ByteArray, value)> {
|
) -> List<(ByteArray, value)> {
|
||||||
when left is {
|
when left is {
|
||||||
[] -> right
|
[] -> right
|
||||||
[#(k, v), ..rest] ->
|
[(k, v), ..rest] ->
|
||||||
do_union_with(rest, do_insert_with(right, k, v, with), with)
|
do_union_with(rest, do_insert_with(right, k, v, with), with)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn do_insert_with(
|
fn do_insert_with(
|
||||||
self: List<#(ByteArray, value)>,
|
self: List<(ByteArray, value)>,
|
||||||
key k: ByteArray,
|
key k: ByteArray,
|
||||||
value v: value,
|
value v: value,
|
||||||
with: fn(ByteArray, value, value) -> Option<value>,
|
with: fn(ByteArray, value, value) -> Option<value>,
|
||||||
) -> List<#(ByteArray, value)> {
|
) -> List<(ByteArray, value)> {
|
||||||
when self is {
|
when self is {
|
||||||
[] -> [#(k, v)]
|
[] -> [(k, v)]
|
||||||
[#(k2, v2), ..rest] ->
|
[(k2, v2), ..rest] ->
|
||||||
if k == k2 {
|
if k == k2 {
|
||||||
when with(k, v, v2) is {
|
when with(k, v, v2) is {
|
||||||
Some(combined) -> [#(k, combined), ..rest]
|
Some(combined) -> [(k, combined), ..rest]
|
||||||
None -> rest
|
None -> rest
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
[#(k2, v2), ..do_insert_with(rest, k, v, with)]
|
[(k2, v2), ..do_insert_with(rest, k, v, with)]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,8 @@ pub fn add(left v0: Value, right v1: Value) -> Value {
|
||||||
v0,
|
v0,
|
||||||
v1,
|
v1,
|
||||||
fn(_, a0, a1) {
|
fn(_, a0, a1) {
|
||||||
let asset = dict.union_with(
|
let asset =
|
||||||
|
dict.union_with(
|
||||||
a0,
|
a0,
|
||||||
a1,
|
a1,
|
||||||
fn(_, q0, q1) {
|
fn(_, q0, q1) {
|
||||||
|
|
|
@ -3,11 +3,11 @@
|
||||||
|
|
||||||
[[requirements]]
|
[[requirements]]
|
||||||
name = "aiken-lang/stdlib"
|
name = "aiken-lang/stdlib"
|
||||||
version = "6b482fa00ec37fe936c93155e8c670f32288a686"
|
version = "1cedbe85b7c7e9c4036d63d45cad4ced27b0d50b"
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[[packages]]
|
[[packages]]
|
||||||
name = "aiken-lang/stdlib"
|
name = "aiken-lang/stdlib"
|
||||||
version = "6b482fa00ec37fe936c93155e8c670f32288a686"
|
version = "1cedbe85b7c7e9c4036d63d45cad4ced27b0d50b"
|
||||||
requirements = []
|
requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
|
@ -2,5 +2,5 @@ name = "aiken-lang/acceptance_test_036"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "aiken-lang/stdlib", version = "6b482fa00ec37fe936c93155e8c670f32288a686", source = "github" },
|
{ name = "aiken-lang/stdlib", version = "1cedbe85b7c7e9c4036d63d45cad4ced27b0d50b", source = "github" },
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,13 +1,8 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
pub type Door {
|
pub type Door {
|
||||||
locked: Bool,
|
locked: Bool,
|
||||||
hinge_angle: Int
|
hinge_angle: Int,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
pub type Car {
|
pub type Car {
|
||||||
owner: ByteArray,
|
owner: ByteArray,
|
||||||
wheels: Int,
|
wheels: Int,
|
||||||
|
@ -15,46 +10,98 @@ pub type Car{
|
||||||
vin: ByteArray,
|
vin: ByteArray,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
pub fn update_owner(new_owner: ByteArray, car: Car) {
|
pub fn update_owner(new_owner: ByteArray, car: Car) {
|
||||||
Car { ..car, owner: new_owner }
|
Car { ..car, owner: new_owner }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn update_vin(new_vin: ByteArray, car: Car) {
|
pub fn update_vin(new_vin: ByteArray, car: Car) {
|
||||||
Car { ..car, vin: new_vin }
|
Car { ..car, vin: new_vin }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
pub fn update_door_angle(new_hinge_angle: Int, car: Car) {
|
pub fn update_door_angle(new_hinge_angle: Int, car: Car) {
|
||||||
Car { ..car, door: Door { ..car.door, hinge_angle: new_hinge_angle } }
|
Car { ..car, door: Door { ..car.door, hinge_angle: new_hinge_angle } }
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn update_door_locked_and_wheels(new_locked: Bool, new_wheels: Int, car: Car){
|
pub fn update_door_locked_and_wheels(
|
||||||
Car{..car, door: Door{..car.door, locked: new_locked}, wheels: new_wheels}
|
new_locked: Bool,
|
||||||
|
new_wheels: Int,
|
||||||
|
car: Car,
|
||||||
|
) {
|
||||||
|
Car {
|
||||||
|
..car,
|
||||||
|
door: Door { ..car.door, locked: new_locked },
|
||||||
|
wheels: new_wheels,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
test update_owner1() {
|
test update_owner1() {
|
||||||
let initial_car = Car{owner: #[], wheels: 4, vin: #[1,1,1,1,1,1,1], door: Door{locked: False, hinge_angle: 45}}
|
let initial_car =
|
||||||
let final_car = Car{owner: #[244, 244, 244, 244], wheels: 4, vin: #[1,1,1,1,1,1,1], door: Door{locked: False, hinge_angle: 45}}
|
Car {
|
||||||
|
owner: #[],
|
||||||
|
wheels: 4,
|
||||||
|
vin: #[1, 1, 1, 1, 1, 1, 1],
|
||||||
|
door: Door { locked: False, hinge_angle: 45 },
|
||||||
|
}
|
||||||
|
let final_car =
|
||||||
|
Car {
|
||||||
|
owner: #[244, 244, 244, 244],
|
||||||
|
wheels: 4,
|
||||||
|
vin: #[1, 1, 1, 1, 1, 1, 1],
|
||||||
|
door: Door { locked: False, hinge_angle: 45 },
|
||||||
|
}
|
||||||
update_owner(#[244, 244, 244, 244], initial_car) == final_car
|
update_owner(#[244, 244, 244, 244], initial_car) == final_car
|
||||||
}
|
}
|
||||||
|
|
||||||
test update_vin1() {
|
test update_vin1() {
|
||||||
let initial_car = Car{owner: #[], wheels: 4, vin: #[1,1,1,1,1,1,1], door: Door{locked: False, hinge_angle: 45}}
|
let initial_car =
|
||||||
let final_car = Car{owner: #[], wheels: 4, vin: #[2,2,2,2,2,2,2,2,2], door: Door{locked: False, hinge_angle: 45}}
|
Car {
|
||||||
|
owner: #[],
|
||||||
|
wheels: 4,
|
||||||
|
vin: #[1, 1, 1, 1, 1, 1, 1],
|
||||||
|
door: Door { locked: False, hinge_angle: 45 },
|
||||||
|
}
|
||||||
|
let final_car =
|
||||||
|
Car {
|
||||||
|
owner: #[],
|
||||||
|
wheels: 4,
|
||||||
|
vin: #[2, 2, 2, 2, 2, 2, 2, 2, 2],
|
||||||
|
door: Door { locked: False, hinge_angle: 45 },
|
||||||
|
}
|
||||||
update_vin(#[2, 2, 2, 2, 2, 2, 2, 2, 2], initial_car) == final_car
|
update_vin(#[2, 2, 2, 2, 2, 2, 2, 2, 2], initial_car) == final_car
|
||||||
}
|
}
|
||||||
|
|
||||||
test update_door_angle1() {
|
test update_door_angle1() {
|
||||||
let initial_car = Car{owner: #[], wheels: 4, vin: #[1,1,1,1,1,1,1], door: Door{locked: False, hinge_angle: 45}}
|
let initial_car =
|
||||||
let final_car = Car{owner: #[], wheels: 4, vin: #[1,1,1,1,1,1,1], door: Door{locked: False, hinge_angle: 90}}
|
Car {
|
||||||
|
owner: #[],
|
||||||
|
wheels: 4,
|
||||||
|
vin: #[1, 1, 1, 1, 1, 1, 1],
|
||||||
|
door: Door { locked: False, hinge_angle: 45 },
|
||||||
|
}
|
||||||
|
let final_car =
|
||||||
|
Car {
|
||||||
|
owner: #[],
|
||||||
|
wheels: 4,
|
||||||
|
vin: #[1, 1, 1, 1, 1, 1, 1],
|
||||||
|
door: Door { locked: False, hinge_angle: 90 },
|
||||||
|
}
|
||||||
update_door_angle(90, initial_car) == final_car
|
update_door_angle(90, initial_car) == final_car
|
||||||
}
|
}
|
||||||
|
|
||||||
test update_door_locked_and_wheels1() {
|
test update_door_locked_and_wheels1() {
|
||||||
let initial_car = Car{owner: #[], wheels: 4, vin: #[1,1,1,1,1,1,1], door: Door{locked: False, hinge_angle: 45}}
|
let initial_car =
|
||||||
let final_car = Car{owner: #[], wheels: 5, vin: #[1,1,1,1,1,1,1], door: Door{locked: True, hinge_angle: 45}}
|
Car {
|
||||||
|
owner: #[],
|
||||||
|
wheels: 4,
|
||||||
|
vin: #[1, 1, 1, 1, 1, 1, 1],
|
||||||
|
door: Door { locked: False, hinge_angle: 45 },
|
||||||
|
}
|
||||||
|
let final_car =
|
||||||
|
Car {
|
||||||
|
owner: #[],
|
||||||
|
wheels: 5,
|
||||||
|
vin: #[1, 1, 1, 1, 1, 1, 1],
|
||||||
|
door: Door { locked: True, hinge_angle: 45 },
|
||||||
|
}
|
||||||
update_door_locked_and_wheels(True, 5, initial_car) == final_car
|
update_door_locked_and_wheels(True, 5, initial_car) == final_car
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue