⭐️ A friendly language for building type-safe, scalable systems!
at main 3.5 kB view raw
1use crate::assert_format; 2 3#[test] 4fn construction() { 5 assert_format!( 6 "fn main() { 7 let a = 1 8 let x = <<1, a, 2:bytes>> 9 let size = <<3:2, 4:size(3), 5:bytes-size(4), 6:size(a)>> 10 let unit = <<7:unit(1), 8:bytes-unit(2)>> 11 x 12} 13", 14 ); 15} 16 17#[test] 18fn pattern() { 19 assert_format!( 20 "fn main() { 21 let a = 1 22 let <<b, c, d:bytes>> = <<1, a, 2:bytes>> 23 b 24} 25", 26 ); 27} 28 29#[test] 30fn long() { 31 assert_format!( 32 "fn main() { 33 let some_really_long_variable_name_to_force_wrapping = 1 34 let bits = << 35 some_really_long_variable_name_to_force_wrapping, 36 some_really_long_variable_name_to_force_wrapping, 37 >> 38 bits 39} 40", 41 ); 42} 43 44// https://github.com/gleam-lang/gleam/issues/2932 45#[test] 46fn tight_empty() { 47 assert_format!( 48 "fn main() { 49 let some_really_really_really_really_really_really_really_long_variable_name_to_force_wrapping = <<>> 50 some_really_really_really_really_really_really_really_long_variable_name_to_force_wrapping 51} 52" 53 ); 54} 55 56#[test] 57fn comments_are_not_moved_out_of_empty_bit_array() { 58 assert_format!( 59 r#"pub fn main() { 60 // This is an empty bit array! 61 << 62 // Nothing here... 63 >> 64} 65"# 66 ); 67} 68 69#[test] 70fn empty_bit_arrays_with_comment_inside_are_indented_properly() { 71 assert_format!( 72 r#"pub fn main() { 73 fun( 74 << 75 // Nothing here... 76 >>, 77 wibble_wobble_wibble_wobble_wibble_wobble_wibble_wobble, 78 << 79 // Nothing here as well! 80 >>, 81 ) 82} 83"# 84 ); 85} 86 87#[test] 88fn comments_inside_non_empty_bit_arrays_are_not_moved() { 89 assert_format!( 90 r#"pub fn main() { 91 fun( 92 << 93 // One is below me. 94 1, 2, 95 // Three is below me. 96 3, 97 >>, 98 wibble_wobble_wibble_wobble_wibble_wobble_wibble_wobble, 99 << 100 // Three is below me. 101 3, 102 >>, 103 ) 104} 105"# 106 ); 107} 108 109#[test] 110fn concise_wrapping_of_simple_bit_arrays() { 111 assert_format!( 112 "pub fn main() { 113 << 114 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 115 1500, 1600, 1700, 1800, 1900, 2000, 116 >> 117} 118" 119 ); 120} 121 122#[test] 123fn concise_wrapping_of_simple_bit_arrays1() { 124 assert_format!( 125 "pub fn main() { 126 << 127 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 1.0, 11.0, 12.0, 13.0, 14.0, 128 15.0, 16.0, 17.0, 18.0, 19.0, 2.0, 129 >> 130} 131" 132 ); 133} 134 135#[test] 136fn concise_wrapping_of_simple_bit_arrays2() { 137 assert_format!( 138 r#"pub fn main() { 139 << 140 "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", 141 "ten", "eleven", "twelve", 142 >> 143} 144"# 145 ); 146} 147 148#[test] 149fn concise_wrapping_of_simple_bit_arrays3() { 150 assert_format!( 151 "const values = << 152 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 153 1500, 1600, 1700, 1800, 1900, 2000, 154>> 155" 156 ); 157} 158 159#[test] 160fn concise_wrapping_of_simple_bit_arrays4() { 161 assert_format!( 162 "const values = << 163 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 1.0, 11.0, 12.0, 13.0, 14.0, 15.0, 164 16.0, 17.0, 18.0, 19.0, 2.0, 165>> 166" 167 ); 168} 169 170#[test] 171fn concise_wrapping_of_simple_bit_arrays5() { 172 assert_format!( 173 r#"const values = << 174 "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", 175 "eleven", "twelve", 176>> 177"# 178 ); 179} 180 181#[test] 182fn binop_value() { 183 assert_format!( 184 r#"pub fn main() { 185 <<{ 1 + 1 }>> 186} 187"# 188 ); 189} 190 191#[test] 192fn block_value() { 193 assert_format!( 194 r#"pub fn main() { 195 << 196 { 197 io.println("hi") 198 1 199 }, 200 >> 201} 202"# 203 ); 204}