chore: refactor formatting tests

This changes the tests from normal assertions into snapshot tests, as
well as standardizing test names.
This commit is contained in:
Cainã Costa
2023-07-03 18:11:54 -03:00
committed by Lucas
parent 01be548752
commit c27ef8ad93
34 changed files with 612 additions and 481 deletions

View File

@@ -0,0 +1,12 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nfn foo() {\n ( 14 + 42 ) * 1337\n}\n\nfn bar() {\n { 14 + 42 } * 1337\n}\n"
---
fn foo() {
( 14 + 42 ) * 1337
}
fn bar() {
( 14 + 42 ) * 1337
}

View File

@@ -0,0 +1,16 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nfn foo() {\n !(a && b)\n}\n\nfn bar() {\n (a || b) && (c || d)\n}\n\nfn baz() {\n a || (b && c) || d\n}\n"
---
fn foo() {
!(a && b)
}
fn bar() {
( a || b ) && ( c || d )
}
fn baz() {
a || b && c || d
}

View File

@@ -0,0 +1,18 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nconst foo_const_array = #[102, 111, 111]\n\nconst foo_const_hex = #\"666f6f\"\n\nconst foo_const_utf8 = \"foo\"\n\nfn foo() {\n let foo_const_array = #[102, 111, 111]\n\n let foo_const_hex = #\"666f6f\"\n\n let foo_const_utf8 = \"foo\"\n}\n"
---
const foo_const_array = #[102, 111, 111]
const foo_const_hex = #"666f6f"
const foo_const_utf8 = "foo"
fn foo() {
let foo_const_array = #[102, 111, 111]
let foo_const_hex = #"666f6f"
let foo_const_utf8 = "foo"
}

View File

@@ -0,0 +1,8 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\ntype Foo =\n Int\n\n//"
---
type Foo =
Int
//

View File

@@ -0,0 +1,15 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\n validator ( param1 : ByteArray ) {\n fn foo (d: Datum, r: Redeemer, ctx: ScriptContext) -> Bool {\n True\n }\n /// This is bar\nfn bar(r: Redeemer, ctx : ScriptContext ) -> Bool { True }\n }\n"
---
validator(param1: ByteArray) {
fn foo(d: Datum, r: Redeemer, ctx: ScriptContext) -> Bool {
True
}
/// This is bar
fn bar(r: Redeemer, ctx: ScriptContext) -> Bool {
True
}
}

View File

@@ -0,0 +1,14 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\npub fn foo(xs: List<a>, n: Int) -> List<a> {\n if n <= 0 {\n xs\n } else if n <= 10 {\n xs\n } else {\n xs\n }\n}\n"
---
pub fn foo(xs: List<a>, n: Int) -> List<a> {
if n <= 0 {
xs
} else if n <= 10 {
xs
} else {
xs
}
}

View File

@@ -0,0 +1,10 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\n!test foo() {\n expect Some(a) = bar\n\n a\n}\n"
---
!test foo() {
expect Some(a) = bar
a
}

View File

@@ -0,0 +1,20 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nfn foo() {\n compare_with(a, >, b)\n compare_with(a, >=, b)\n compare_with(a, <, b)\n compare_with(a, <=, b)\n compare_with(a, ==, b)\n compare_with(a, !=, b)\n combine_with(a, &&, b)\n combine_with(a, ||, b)\n compute_with(a, +, b)\n compute_with(a, -, b)\n compute_with(a, /, b)\n compute_with(a, *, b)\n compute_with(a, %, b)\n}\n"
---
fn foo() {
compare_with(a, >, b)
compare_with(a, >=, b)
compare_with(a, <, b)
compare_with(a, <=, b)
compare_with(a, ==, b)
compare_with(a, !=, b)
combine_with(a, &&, b)
combine_with(a, ||, b)
compute_with(a, +, b)
compute_with(a, -, b)
compute_with(a, /, b)
compute_with(a, *, b)
compute_with(a, %, b)
}

View File

@@ -0,0 +1,11 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nfn foo() {\n let a = 1_000_000 + 1_423 + 10393841\n let b = 0xa4 - 0xcd\n let c = #[0xfd, 0x12, 0x00, 0x1b, 0x0a, 0x90]\n let d = -100_000\n}\n"
---
fn foo() {
let a = 1_000_000 + 1_423 + 10393841
let b = 0xa4 - 0xcd
let c = #[0xfd, 0x12, 0x00, 0x1b, 0x0a, 0x90]
let d = -100_000
}

View File

@@ -0,0 +1,25 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\npub fn foo(a) {\n if a { 14 } else { 42 }\n }\n\npub fn bar(xs) {\n list.map(xs, fn (x) { if x > 0 { \"foo\" } else { \"bar\" } })\n}\n"
---
pub fn foo(a) {
if a {
14
} else {
42
}
}
pub fn bar(xs) {
list.map(
xs,
fn(x) {
if x > 0 {
"foo"
} else {
"bar"
}
},
)
}

View File

@@ -0,0 +1,12 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nuse aiken/list\n// foo\nuse aiken/bytearray\nuse aiken/transaction/certificate\n// bar\nuse aiken/transaction\nuse aiken/transaction/value\n"
---
// foo
use aiken/bytearray
use aiken/list
// bar
use aiken/transaction
use aiken/transaction/certificate
use aiken/transaction/value

View File

@@ -0,0 +1,14 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nfn foo() {\n when bar is {\n Bar { a, b, c } -> Void\n Bar { a, .. } -> Void\n Bar { .. } -> Void\n Bar(a, b, c) -> Void\n Bar(..) -> Void\n }\n}\n"
---
fn foo() {
when bar is {
Bar { a, b, c } -> Void
Bar { a, .. } -> Void
Bar { .. } -> Void
Bar(a, b, c) -> Void
Bar(..) -> Void
}
}

View File

@@ -0,0 +1,8 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nfn foo() {\n - 42\n}\n"
---
fn foo() {
-42
}

View File

@@ -0,0 +1,21 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nfn foo(output) {\n [\n output.address.stake_credential == Some(\n Inline(\n VerificationKeyCredential(\n #\"66666666666666666666666666666666666666666666666666666666\",\n ))\n )\n ,\n when output.datum is {\n InlineDatum(_) -> True\n _ -> error \"expected inline datum\"\n },\n ]\n |> list.and\n}\n"
---
fn foo(output) {
[
output.address.stake_credential == Some(
Inline(
VerificationKeyCredential(
#"66666666666666666666666666666666666666666666666666666666",
),
),
),
when output.datum is {
InlineDatum(_) -> True
_ -> error @"expected inline datum"
},
]
|> list.and
}

View File

@@ -0,0 +1,24 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\npub fn foo(n) {\n if n > 0 {\n if n > 1 { if n > 2 { \"foo\" } else { \"foo\" } } else { \"bar\" }\n } else {\n if n < -1 { \"baz\" } else { \"biz\" }\n }\n}\n"
---
pub fn foo(n) {
if n > 0 {
if n > 1 {
if n > 2 {
"foo"
} else {
"foo"
}
} else {
"bar"
}
} else {
if n < -1 {
"baz"
} else {
"biz"
}
}
}

View File

@@ -0,0 +1,19 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nfn foo() {\n when a is {\n None -> \"foo\"\n Some(b) -> when b is {\n None -> \"foo\"\n Some(c) -> when c is {\n None -> \"foo\"\n Some(_) -> \"foo\"\n }\n }\n }\n}\n"
---
fn foo() {
when a is {
None -> "foo"
Some(b) ->
when b is {
None -> "foo"
Some(c) ->
when c is {
None -> "foo"
Some(_) -> "foo"
}
}
}
}

View File

@@ -0,0 +1,16 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\npub fn drop(xs: List<a>, n: Int) -> List<a> {\n if n <= 0 {\n xs\n } else {\n when xs is {\n [] ->\n []\n [_x, ..rest] ->\n drop(rest, n - 1)\n }\n }\n}\n"
---
pub fn drop(xs: List<a>, n: Int) -> List<a> {
if n <= 0 {
xs
} else {
when xs is {
[] ->
[]
[_x, ..rest] -> drop(rest, n - 1)
}
}
}

View File

@@ -0,0 +1,18 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\n// My comment\n//\n// has a newline.\nfn foo() {\n True\n}\n\n// My comments\n\n// can live apart\nfn bar() {\n True\n}\n"
---
// My comment
//
// has a newline.
fn foo() {
True
}
// My comments
// can live apart
fn bar() {
True
}

View File

@@ -0,0 +1,17 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\n/// My doc comment\n///\n/// has a newline.\nfn foo() {\n True\n}\n\n/// My doc comments\n\n/// cannot be separated\nfn bar() {\n True\n}\n"
---
/// My doc comment
///
/// has a newline.
fn foo() {
True
}
/// My doc comments
/// cannot be separated
fn bar() {
True
}

View File

@@ -0,0 +1,14 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\n//// My module comment\n////\n//// has a newline.\n\nfn foo() {\n True\n}\n\n//// My module comments\n\n//// cannot be separated\n"
---
//// My module comment
////
//// has a newline.
//// My module comments
//// cannot be separated
fn foo() {
True
}

View File

@@ -0,0 +1,13 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nfn foo() {\n outputs\n |> list.any(\n fn(output) { value.quantity_of(output.value, policy_id, asset_name) == 1 },\n )\n}\n"
---
fn foo() {
outputs
|> list.any(
fn(output) {
value.quantity_of(output.value, policy_id, asset_name) == 1
},
)
}

View File

@@ -0,0 +1,8 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\ntest fmt() {\n (x == y) && ((z |> length()) == x)\n}\n"
---
test fmt() {
x == y && ( z |> length() ) == x
}

View File

@@ -0,0 +1,25 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nfn foo() {\n a |> b |> c |> d\n}\n\nfn foo() {\n a\n // Foo\n |> b// Some comments\n |> c\n |> d\n}\n\nfn baz() {\n // Commented\n however |> it_automatically_breaks |> into_multiple_lines |> anytime_when |> it_is_too_long // What?\n}\n"
---
fn foo() {
a |> b |> c |> d
}
fn foo() {
a // Foo
|> b // Some comments
|> c
|> d
}
fn baz() {
// Commented
however
|> it_automatically_breaks
|> into_multiple_lines
|> anytime_when
|> it_is_too_long
// What?
}

View File

@@ -0,0 +1,8 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nfn smth() { let a = foo.Foo { bar: 1 } }\n"
---
fn smth() {
let a = foo.Foo { bar: 1 }
}

View File

@@ -0,0 +1,10 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nconst foo_const: String = @\"foo\"\n\nfn foo() {\n let foo_var: String = @\"foo\"\n}\n"
---
const foo_const: String = @"foo"
fn foo() {
let foo_var: String = @"foo"
}

View File

@@ -0,0 +1,14 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nfn foo() {\n list.any([], fn (e) { trace @\"foo\"\n e\n })\n}\n"
---
fn foo() {
list.any(
[],
fn(e) {
trace @"foo"
e
},
)
}

View File

@@ -0,0 +1,12 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nfn foo() {\n my_expression?\n}\n\nfn bar() {\n (True && False)? || foo()?\n}\n"
---
fn foo() {
my_expression?
}
fn bar() {
(True && False)? || foo()?
}

View File

@@ -0,0 +1,28 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nfn foo_1() {\n todo\n}\n\nfn foo_2() {\n todo \"my custom message\"\n}\n\nfn foo_3() {\n when x is {\n Foo -> True\n _ -> error\n }\n}\n\nfn foo_4() {\n if 14 == 42 {\n error \"I don't think so\"\n } else {\n trace \"been there\"\n True\n }\n}\n"
---
fn foo_1() {
todo
}
fn foo_2() {
todo @"my custom message"
}
fn foo_3() {
when x is {
Foo -> True
_ -> error
}
}
fn foo_4() {
if 14 == 42 {
error @"I don't think so"
} else {
trace @"been there"
True
}
}

View File

@@ -0,0 +1,10 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\n/// ∞ ★ ♩ ♫ ✓\nfn foo() {\n trace @\"∀💩\"\n Void\n}\n"
---
/// ∞ ★ ♩ ♫ ✓
fn foo() {
trace @"∀💩"
Void
}

View File

@@ -0,0 +1,22 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\nvalidator ( ) {\n// What is the purpose of life\n\nfn foo (d: Datum, r: Redeemer, ctx: ScriptContext) -> Bool {\nTrue\n}\n}\n\n// What?\nvalidator {\n /// Some documentation for foo\n fn foo() {\n Void\n }\n\n // I am lost\n}\n"
---
validator {
// What is the purpose of life
fn foo(d: Datum, r: Redeemer, ctx: ScriptContext) -> Bool {
True
}
}
// What?
validator {
/// Some documentation for foo
fn foo() {
Void
}
// I am lost
}

View File

@@ -0,0 +1,20 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\n// A\n\n/// B\n\n/// C\nfn foo() {\n todo\n}\n\n// E\n\n/// F\n\n// G\nfn bar() {\n todo\n}\n"
---
// A
/// B
/// C
fn foo() {
todo
}
// E
// G
/// F
fn bar() {
todo
}

View File

@@ -0,0 +1,16 @@
---
source: crates/aiken-lang/src/tests/format.rs
description: "Code:\n\npub fn foo( a) {\n when a is{\n True -> {\n\n bar()\n\n 14\n\n }\n False ->\n\n 42\n\n }\n }\n"
---
pub fn foo(a) {
when a is {
True -> {
bar()
14
}
False -> 42
}
}