diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fbc54f3b..8dba998c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -38,7 +38,7 @@ jobs: - name: Getting scarb uses: software-mansion/setup-scarb@v1 with: - scarb-version: "2.9.2" + scarb-version: "2.12.0" - name: Verify all exercises env: @@ -56,7 +56,7 @@ jobs: - name: Getting scarb uses: software-mansion/setup-scarb@v1 with: - scarb-version: "2.9.2" + scarb-version: "2.12.0" - name: Format run: ./bin/format_exercises.sh --check diff --git a/.tool-versions b/.tool-versions index f6645f9f..c402b075 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1 +1 @@ -scarb 2.9.2 +scarb 2.12.0 diff --git a/README.md b/README.md index 108337c4..c6b85b1a 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ _Thoughtful suggestions will likely result faster & more enthusiastic responses ## Testing -Tests currently use Cairo v2.9.2 (included with Scarb v2.9.2). +Tests currently use Cairo v2.12.0 (included with Scarb v2.12.0). To test all exercises, run `./bin/verify-exercises`. This command will iterate over all exercises and check to see if their exemplar/example implementation passes all the tests. diff --git a/bin/verify-exercises b/bin/verify-exercises index 7180639f..9fcdd02a 100755 --- a/bin/verify-exercises +++ b/bin/verify-exercises @@ -60,6 +60,8 @@ for exercise_path in $exercises; do tmp_dir=$(mktemp -d) trap 'rm -rf $tmp_dir' EXIT INT TERM + cp ".tool-versions" "$tmp_dir" + # copy the exercise to the temporary directory contents_to_copy=( "src" diff --git a/exercises/concept/airport-robot/Scarb.toml b/exercises/concept/airport-robot/Scarb.toml index 45616db3..b100ec4b 100644 --- a/exercises/concept/airport-robot/Scarb.toml +++ b/exercises/concept/airport-robot/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/concept/airport-robot/tests/airport_robot.cairo b/exercises/concept/airport-robot/tests/airport_robot.cairo index f92f8acc..3c62b0ea 100644 --- a/exercises/concept/airport-robot/tests/airport_robot.cairo +++ b/exercises/concept/airport-robot/tests/airport_robot.cairo @@ -1,4 +1,4 @@ -use airport_robot::{Italian, French, say_hello}; +use airport_robot::{French, Italian, say_hello}; #[test] fn test_say_hello_italian_name_without_spaces() { diff --git a/exercises/concept/annalyns-infiltration/Scarb.toml b/exercises/concept/annalyns-infiltration/Scarb.toml index 4db3b7fd..5072ce80 100644 --- a/exercises/concept/annalyns-infiltration/Scarb.toml +++ b/exercises/concept/annalyns-infiltration/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/concept/annalyns-infiltration/tests/annalyns_infiltration.cairo b/exercises/concept/annalyns-infiltration/tests/annalyns_infiltration.cairo index 931d2177..59467b8f 100644 --- a/exercises/concept/annalyns-infiltration/tests/annalyns_infiltration.cairo +++ b/exercises/concept/annalyns-infiltration/tests/annalyns_infiltration.cairo @@ -1,4 +1,4 @@ -use annalyns_infiltration::{can_fast_attack, can_spy, can_signal_prisoner, can_free_prisoner}; +use annalyns_infiltration::{can_fast_attack, can_free_prisoner, can_signal_prisoner, can_spy}; // The following tests are for the `can_fast_attack` function. diff --git a/exercises/concept/calculator-conundrum/Scarb.toml b/exercises/concept/calculator-conundrum/Scarb.toml index de2b24b2..c210079e 100644 --- a/exercises/concept/calculator-conundrum/Scarb.toml +++ b/exercises/concept/calculator-conundrum/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/concept/chrono-realms-chrono-chain/.meta/exemplar.cairo b/exercises/concept/chrono-realms-chrono-chain/.meta/exemplar.cairo index a1a0cecc..060aa41d 100644 --- a/exercises/concept/chrono-realms-chrono-chain/.meta/exemplar.cairo +++ b/exercises/concept/chrono-realms-chrono-chain/.meta/exemplar.cairo @@ -15,7 +15,7 @@ pub impl ChronoChainImpl of ChronoChainTrait { let mut span = arr.span(); while let Option::Some(value) = span.pop_back() { chain = ChronoChain::Link((*value, BoxTrait::new(chain))); - }; + } chain } diff --git a/exercises/concept/chrono-realms-chrono-chain/Scarb.toml b/exercises/concept/chrono-realms-chrono-chain/Scarb.toml index e5af8176..7be6ce60 100644 --- a/exercises/concept/chrono-realms-chrono-chain/Scarb.toml +++ b/exercises/concept/chrono-realms-chrono-chain/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/concept/chrono-realms-chrono-chain/tests/chrono_realms_chrono_chain.cairo b/exercises/concept/chrono-realms-chrono-chain/tests/chrono_realms_chrono_chain.cairo index 5ccb740a..a4826661 100644 --- a/exercises/concept/chrono-realms-chrono-chain/tests/chrono_realms_chrono_chain.cairo +++ b/exercises/concept/chrono-realms-chrono-chain/tests/chrono_realms_chrono_chain.cairo @@ -1,4 +1,4 @@ -use chrono_realms_chrono_chain::{ChronoChainTrait, ChronoChain}; +use chrono_realms_chrono_chain::{ChronoChain, ChronoChainTrait}; const U32_MAX: u32 = 0xFFFFFFFF; @@ -139,7 +139,7 @@ fn build_large_array() { assert_eq!(value, count); count += 1; chrono_chain = next.unbox(); - }; + } match chrono_chain { ChronoChain::End => (), @@ -225,6 +225,6 @@ fn array_in_range(range: core::ops::Range) -> Array { let mut arr = array![]; for elem in range { arr.append(elem); - }; + } arr } diff --git a/exercises/concept/chrono-realms/.meta/exemplar.cairo b/exercises/concept/chrono-realms/.meta/exemplar.cairo index 25643339..93ed74f9 100644 --- a/exercises/concept/chrono-realms/.meta/exemplar.cairo +++ b/exercises/concept/chrono-realms/.meta/exemplar.cairo @@ -1,4 +1,4 @@ -use core::traits::{Add, Sub, PartialOrd}; +use core::traits::{Add, PartialOrd, Sub}; // Define the TimeShard struct #[derive(Drop, Debug, PartialEq)] diff --git a/exercises/concept/chrono-realms/Scarb.toml b/exercises/concept/chrono-realms/Scarb.toml index 0eee5f77..791ab61e 100644 --- a/exercises/concept/chrono-realms/Scarb.toml +++ b/exercises/concept/chrono-realms/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/concept/chrono-realms/src/lib.cairo b/exercises/concept/chrono-realms/src/lib.cairo index a16a9ec7..35d0820b 100644 --- a/exercises/concept/chrono-realms/src/lib.cairo +++ b/exercises/concept/chrono-realms/src/lib.cairo @@ -1,4 +1,4 @@ -use core::traits::{Add, Sub, PartialOrd}; +use core::traits::{Add, PartialOrd, Sub}; // Define the TimeShard struct #[derive(Drop, Debug, PartialEq)] diff --git a/exercises/concept/cryptographer/Scarb.toml b/exercises/concept/cryptographer/Scarb.toml index 7379192e..7daab905 100644 --- a/exercises/concept/cryptographer/Scarb.toml +++ b/exercises/concept/cryptographer/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/concept/election-day/.meta/exemplar.cairo b/exercises/concept/election-day/.meta/exemplar.cairo index ae385c9d..d697f8a3 100644 --- a/exercises/concept/election-day/.meta/exemplar.cairo +++ b/exercises/concept/election-day/.meta/exemplar.cairo @@ -1,5 +1,5 @@ -use core::to_byte_array::AppendFormattedToByteArray; use core::dict::Felt252Dict; +use core::to_byte_array::AppendFormattedToByteArray; #[derive(Drop, Copy)] pub struct VoteCounter { diff --git a/exercises/concept/election-day/Scarb.toml b/exercises/concept/election-day/Scarb.toml index ae204176..c76a056c 100644 --- a/exercises/concept/election-day/Scarb.toml +++ b/exercises/concept/election-day/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/concept/election-day/src/lib.cairo b/exercises/concept/election-day/src/lib.cairo index 4dde362c..7aece76b 100644 --- a/exercises/concept/election-day/src/lib.cairo +++ b/exercises/concept/election-day/src/lib.cairo @@ -1,5 +1,5 @@ -use core::to_byte_array::AppendFormattedToByteArray; use core::dict::Felt252Dict; +use core::to_byte_array::AppendFormattedToByteArray; #[derive(Drop, Copy)] pub struct VoteCounter { diff --git a/exercises/concept/gross-store/Scarb.toml b/exercises/concept/gross-store/Scarb.toml index 32e45be6..e3b2a3ce 100644 --- a/exercises/concept/gross-store/Scarb.toml +++ b/exercises/concept/gross-store/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/concept/health-statistics/Scarb.toml b/exercises/concept/health-statistics/Scarb.toml index a5bfe74c..8031e929 100644 --- a/exercises/concept/health-statistics/Scarb.toml +++ b/exercises/concept/health-statistics/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/concept/low-power-embedded-game/.meta/exemplar.cairo b/exercises/concept/low-power-embedded-game/.meta/exemplar.cairo index f0effa7d..7b87c7f7 100644 --- a/exercises/concept/low-power-embedded-game/.meta/exemplar.cairo +++ b/exercises/concept/low-power-embedded-game/.meta/exemplar.cairo @@ -15,7 +15,7 @@ pub impl EvensImpl, +Copy> of EvensTrait { result.append(*self.at(i)); } i += 2; - }; + } result } } diff --git a/exercises/concept/low-power-embedded-game/Scarb.toml b/exercises/concept/low-power-embedded-game/Scarb.toml index 126011aa..b40b1643 100644 --- a/exercises/concept/low-power-embedded-game/Scarb.toml +++ b/exercises/concept/low-power-embedded-game/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/concept/lucians-luscious-lasagna/Scarb.toml b/exercises/concept/lucians-luscious-lasagna/Scarb.toml index e6dc80f9..fe299a5e 100644 --- a/exercises/concept/lucians-luscious-lasagna/Scarb.toml +++ b/exercises/concept/lucians-luscious-lasagna/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/concept/magician-in-training/Scarb.toml b/exercises/concept/magician-in-training/Scarb.toml index 98d6d38d..a561bfdd 100644 --- a/exercises/concept/magician-in-training/Scarb.toml +++ b/exercises/concept/magician-in-training/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/concept/red-vs-blue-darwin-style/.meta/exemplar.cairo b/exercises/concept/red-vs-blue-darwin-style/.meta/exemplar.cairo index 39f4d944..e74ed1c6 100644 --- a/exercises/concept/red-vs-blue-darwin-style/.meta/exemplar.cairo +++ b/exercises/concept/red-vs-blue-darwin-style/.meta/exemplar.cairo @@ -46,8 +46,7 @@ pub mod blue_remote_control_car_team { } pub mod combined { - use super::red_remote_control_car_team as Red; - use super::blue_remote_control_car_team as Blue; + use super::{blue_remote_control_car_team as Blue, red_remote_control_car_team as Red}; #[derive(Drop)] pub struct CarBuilder {} diff --git a/exercises/concept/red-vs-blue-darwin-style/Scarb.toml b/exercises/concept/red-vs-blue-darwin-style/Scarb.toml index ec8812c9..32ec516e 100644 --- a/exercises/concept/red-vs-blue-darwin-style/Scarb.toml +++ b/exercises/concept/red-vs-blue-darwin-style/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/concept/the-realm-of-echoes/.meta/exemplar.cairo b/exercises/concept/the-realm-of-echoes/.meta/exemplar.cairo index ece7a592..79f212f8 100644 --- a/exercises/concept/the-realm-of-echoes/.meta/exemplar.cairo +++ b/exercises/concept/the-realm-of-echoes/.meta/exemplar.cairo @@ -1,4 +1,4 @@ -use core::fmt::{Debug, Display, Formatter, Error}; +use core::fmt::{Debug, Display, Error, Formatter}; pub fn format_magical_chant(chant1: ByteArray, chant2: ByteArray, chant3: ByteArray) -> ByteArray { format!("{chant1}-{chant2}-{chant3}") diff --git a/exercises/concept/the-realm-of-echoes/Scarb.toml b/exercises/concept/the-realm-of-echoes/Scarb.toml index 388076d7..128c6d25 100644 --- a/exercises/concept/the-realm-of-echoes/Scarb.toml +++ b/exercises/concept/the-realm-of-echoes/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/concept/the-realm-of-echoes/src/lib.cairo b/exercises/concept/the-realm-of-echoes/src/lib.cairo index 24349bbd..6676f319 100644 --- a/exercises/concept/the-realm-of-echoes/src/lib.cairo +++ b/exercises/concept/the-realm-of-echoes/src/lib.cairo @@ -1,4 +1,4 @@ -use core::fmt::{Debug, Display, Formatter, Error}; +use core::fmt::{Debug, Display, Error, Formatter}; pub fn format_magical_chant(chant1: ByteArray, chant2: ByteArray, chant3: ByteArray) -> ByteArray { panic!("implement 'format_magical_chant'") diff --git a/exercises/concept/welcome-to-tech-palace/.meta/exemplar.cairo b/exercises/concept/welcome-to-tech-palace/.meta/exemplar.cairo index 1e93a41b..5355b067 100644 --- a/exercises/concept/welcome-to-tech-palace/.meta/exemplar.cairo +++ b/exercises/concept/welcome-to-tech-palace/.meta/exemplar.cairo @@ -8,7 +8,7 @@ pub fn add_border(welcome_msg: ByteArray, num_stars_per_line: u32) -> ByteArray let mut border: ByteArray = ""; for _ in 0..num_stars_per_line { border.append_byte('*'); - }; + } border.clone() + "\n" + welcome_msg + "\n" + border } @@ -17,15 +17,15 @@ pub fn clean_up_message(old_msg: ByteArray) -> ByteArray { let mut start = 0; while is_whitespace(old_msg[start]) || old_msg[start] == '*' { start += 1; - }; + } let mut end = old_msg.len(); while is_whitespace(old_msg[end - 1]) || old_msg[end - 1] == '*' { end -= 1; - }; + } let mut clean_msg = ""; for i in start..end { clean_msg.append_byte(old_msg[i]); - }; + } clean_msg } @@ -45,7 +45,7 @@ fn to_uppercase(input: u256) -> ByteArray { while remaining_bytes != 0 { uppercase_chars.append_byte(char_to_uppercase(get_last_byte(remaining_bytes))); remaining_bytes = remove_last_byte(remaining_bytes); - }; + } uppercase_chars.rev() } diff --git a/exercises/concept/welcome-to-tech-palace/Scarb.toml b/exercises/concept/welcome-to-tech-palace/Scarb.toml index bf1da8fa..7d4a0bf9 100644 --- a/exercises/concept/welcome-to-tech-palace/Scarb.toml +++ b/exercises/concept/welcome-to-tech-palace/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/concept/welcome-to-tech-palace/src/lib.cairo b/exercises/concept/welcome-to-tech-palace/src/lib.cairo index 486cdec7..defaa853 100644 --- a/exercises/concept/welcome-to-tech-palace/src/lib.cairo +++ b/exercises/concept/welcome-to-tech-palace/src/lib.cairo @@ -29,7 +29,7 @@ fn to_uppercase(input: u256) -> ByteArray { while remaining_bytes != 0 { uppercase_chars.append_byte(char_to_uppercase(get_last_byte(remaining_bytes))); remaining_bytes = remove_last_byte(remaining_bytes); - }; + } uppercase_chars.rev() } diff --git a/exercises/practice/acronym/.meta/example.cairo b/exercises/practice/acronym/.meta/example.cairo index 14cd6829..f2be21fa 100644 --- a/exercises/practice/acronym/.meta/example.cairo +++ b/exercises/practice/acronym/.meta/example.cairo @@ -12,7 +12,7 @@ pub fn abbreviate(phrase: ByteArray) -> ByteArray { capture = false; } i += 1; - }; + } result } diff --git a/exercises/practice/acronym/Scarb.toml b/exercises/practice/acronym/Scarb.toml index c0b31099..9a45f4b7 100644 --- a/exercises/practice/acronym/Scarb.toml +++ b/exercises/practice/acronym/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/all-your-base/.meta/example.cairo b/exercises/practice/all-your-base/.meta/example.cairo index f3fbf259..824e3849 100644 --- a/exercises/practice/all-your-base/.meta/example.cairo +++ b/exercises/practice/all-your-base/.meta/example.cairo @@ -26,7 +26,7 @@ pub fn rebase(digits: Array, input_base: u32, output_base: u32) -> Result 0 || i == 0 { let x = *digits.at(i); @@ -50,7 +50,7 @@ fn convert_to_base_10(digits: Array, input_base: u32) -> u32 { let pow = input_base.pow(exp); sum += *digit * pow; i += 1; - }; + } sum } @@ -66,7 +66,7 @@ fn convert_from_base_10(mut digits: u32, output_base: u32) -> Array { let remainder = digits % output_base; digits /= output_base; result.append(remainder); - }; + } reverse_array(result) } @@ -78,7 +78,7 @@ fn reverse_array(arr: Array) -> Array { while i > 0 { i -= 1; reversed.append(*arr[i]); - }; + } reversed } diff --git a/exercises/practice/all-your-base/Scarb.toml b/exercises/practice/all-your-base/Scarb.toml index c6e0d803..9dc8e735 100644 --- a/exercises/practice/all-your-base/Scarb.toml +++ b/exercises/practice/all-your-base/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/all-your-base/tests/all_your_base.cairo b/exercises/practice/all-your-base/tests/all_your_base.cairo index 24691231..96ce9569 100644 --- a/exercises/practice/all-your-base/tests/all_your_base.cairo +++ b/exercises/practice/all-your-base/tests/all_your_base.cairo @@ -1,4 +1,4 @@ -use all_your_base::{rebase, Error}; +use all_your_base::{Error, rebase}; #[test] fn single_bit_one_to_decimal() { diff --git a/exercises/practice/allergies/.meta/example.cairo b/exercises/practice/allergies/.meta/example.cairo index 7b5df367..96a25b31 100644 --- a/exercises/practice/allergies/.meta/example.cairo +++ b/exercises/practice/allergies/.meta/example.cairo @@ -38,7 +38,7 @@ pub impl AllergiesImpl of AllergiesTrait { break; } index += 1; - }; + } found && (*self.score & 2_u32.pow(index)) != 0 } @@ -49,7 +49,7 @@ pub impl AllergiesImpl of AllergiesTrait { if self.is_allergic_to(allergen) { result.append(*allergen); } - }; + } result } } diff --git a/exercises/practice/allergies/Scarb.toml b/exercises/practice/allergies/Scarb.toml index ac506140..a110aeef 100644 --- a/exercises/practice/allergies/Scarb.toml +++ b/exercises/practice/allergies/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/allergies/tests/allergies.cairo b/exercises/practice/allergies/tests/allergies.cairo index ef0e6765..0258679d 100644 --- a/exercises/practice/allergies/tests/allergies.cairo +++ b/exercises/practice/allergies/tests/allergies.cairo @@ -294,7 +294,7 @@ fn compare_allergy_vectors(expected: @Array, actual: @Array) break; } j += 1; - }; + } if j == actual.len() { panic!("Allergen missing\n {expected_elem:?} should be in {actual:?}"); } @@ -360,10 +360,7 @@ fn list_when_more_than_eggs_but_not_peanuts() { fn list_when_lots_of_stuff() { let allergies = AllergiesTrait::new(248).allergies(); let expected = @array![ - Allergen::Strawberries, - Allergen::Tomatoes, - Allergen::Chocolate, - Allergen::Pollen, + Allergen::Strawberries, Allergen::Tomatoes, Allergen::Chocolate, Allergen::Pollen, Allergen::Cats, ]; @@ -375,14 +372,8 @@ fn list_when_lots_of_stuff() { fn list_when_everything() { let allergies = AllergiesTrait::new(255).allergies(); let expected = @array![ - Allergen::Eggs, - Allergen::Peanuts, - Allergen::Shellfish, - Allergen::Strawberries, - Allergen::Tomatoes, - Allergen::Chocolate, - Allergen::Pollen, - Allergen::Cats, + Allergen::Eggs, Allergen::Peanuts, Allergen::Shellfish, Allergen::Strawberries, + Allergen::Tomatoes, Allergen::Chocolate, Allergen::Pollen, Allergen::Cats, ]; compare_allergy_vectors(expected, @allergies); @@ -393,13 +384,8 @@ fn list_when_everything() { fn list_when_no_allergen_score_parts() { let allergies = AllergiesTrait::new(509).allergies(); let expected = @array![ - Allergen::Eggs, - Allergen::Shellfish, - Allergen::Strawberries, - Allergen::Tomatoes, - Allergen::Chocolate, - Allergen::Pollen, - Allergen::Cats, + Allergen::Eggs, Allergen::Shellfish, Allergen::Strawberries, Allergen::Tomatoes, + Allergen::Chocolate, Allergen::Pollen, Allergen::Cats, ]; compare_allergy_vectors(expected, @allergies); diff --git a/exercises/practice/anagram/.meta/example.cairo b/exercises/practice/anagram/.meta/example.cairo index 06753315..9881c7a0 100644 --- a/exercises/practice/anagram/.meta/example.cairo +++ b/exercises/practice/anagram/.meta/example.cairo @@ -30,7 +30,7 @@ impl SetEq of PartialEq { break; } j += 1; - }; + } if j == len { break false; } @@ -55,7 +55,7 @@ pub fn anagrams_for(word: @ByteArray, candidates: @Set) -> Set { if is_anagram { anagrams.values.append(format!("{candidate}")); } - }; + } anagrams } @@ -87,7 +87,7 @@ fn sort_ignore_case(word: @ByteArray) -> ByteArray { i -= 1; let char: felt252 = word[i].into(); ascii_chars.insert(char, ascii_chars.get(char) + 1); - }; + } let mut sorted_word: ByteArray = ""; @@ -99,16 +99,16 @@ fn sort_ignore_case(word: @ByteArray) -> ByteArray { while count != 0 { sorted_word.append_byte(alphabet_char); count -= 1; - }; + } // process lowercase char let lowercase_char = lowercase(@alphabet_char); let mut count = ascii_chars.get(lowercase_char.into()); while count != 0 { sorted_word.append_byte(lowercase_char); count -= 1; - }; + } alphabet_char += 1; - }; + } sorted_word } diff --git a/exercises/practice/anagram/Scarb.toml b/exercises/practice/anagram/Scarb.toml index 9ef7e5f6..64970f32 100644 --- a/exercises/practice/anagram/Scarb.toml +++ b/exercises/practice/anagram/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/anagram/tests/anagram.cairo b/exercises/practice/anagram/tests/anagram.cairo index cb0c932c..918f0dd5 100644 --- a/exercises/practice/anagram/tests/anagram.cairo +++ b/exercises/practice/anagram/tests/anagram.cairo @@ -1,4 +1,4 @@ -use anagram::{anagrams_for, SetTrait as Set}; +use anagram::{SetTrait as Set, anagrams_for}; #[test] fn no_matches() { diff --git a/exercises/practice/armstrong-numbers/.meta/example.cairo b/exercises/practice/armstrong-numbers/.meta/example.cairo index e940259a..372d7967 100644 --- a/exercises/practice/armstrong-numbers/.meta/example.cairo +++ b/exercises/practice/armstrong-numbers/.meta/example.cairo @@ -23,6 +23,6 @@ fn count_digits(mut num: u128) -> u32 { while num != 0 { num = num / 10; res += 1; - }; + } res } diff --git a/exercises/practice/armstrong-numbers/Scarb.toml b/exercises/practice/armstrong-numbers/Scarb.toml index 02b3f94a..8666aee2 100644 --- a/exercises/practice/armstrong-numbers/Scarb.toml +++ b/exercises/practice/armstrong-numbers/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/atbash-cipher/.meta/example.cairo b/exercises/practice/atbash-cipher/.meta/example.cairo index fca926af..0636fd92 100644 --- a/exercises/practice/atbash-cipher/.meta/example.cairo +++ b/exercises/practice/atbash-cipher/.meta/example.cairo @@ -17,7 +17,7 @@ pub fn encode(phrase: ByteArray) -> ByteArray { chunk_size += 1; } i += 1; - }; + } result } @@ -33,7 +33,7 @@ pub fn decode(phrase: ByteArray) -> ByteArray { result.append_byte(decoded); } i += 1; - }; + } result } diff --git a/exercises/practice/atbash-cipher/Scarb.toml b/exercises/practice/atbash-cipher/Scarb.toml index 9b706313..5c1576a4 100644 --- a/exercises/practice/atbash-cipher/Scarb.toml +++ b/exercises/practice/atbash-cipher/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/atbash-cipher/tests/atbash_cipher.cairo b/exercises/practice/atbash-cipher/tests/atbash_cipher.cairo index 8de3b786..8698465f 100644 --- a/exercises/practice/atbash-cipher/tests/atbash_cipher.cairo +++ b/exercises/practice/atbash-cipher/tests/atbash_cipher.cairo @@ -1,4 +1,4 @@ -use atbash_cipher::{encode, decode}; +use atbash_cipher::{decode, encode}; // Encode tests diff --git a/exercises/practice/beer-song/.meta/example.cairo b/exercises/practice/beer-song/.meta/example.cairo index 5c44a231..a2a23abb 100644 --- a/exercises/practice/beer-song/.meta/example.cairo +++ b/exercises/practice/beer-song/.meta/example.cairo @@ -26,7 +26,7 @@ pub fn verses(start: u32, take_count: u32) -> ByteArray { } lyrics.append(@"\n"); n -= 1; - }; + } lyrics } diff --git a/exercises/practice/beer-song/Scarb.toml b/exercises/practice/beer-song/Scarb.toml index 7209f179..2f7d772e 100644 --- a/exercises/practice/beer-song/Scarb.toml +++ b/exercises/practice/beer-song/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/binary-search-tree/.meta/example.cairo b/exercises/practice/binary-search-tree/.meta/example.cairo index eaa2f127..d4fd50a1 100644 --- a/exercises/practice/binary-search-tree/.meta/example.cairo +++ b/exercises/practice/binary-search-tree/.meta/example.cairo @@ -13,7 +13,7 @@ pub impl BinarySearchTreeImpl of BinarySearchTreeTrait { let mut bts: BinarySearchTree = Default::default(); for value in tree_data { bts = bts.add(*value); - }; + } bts } diff --git a/exercises/practice/binary-search-tree/Scarb.toml b/exercises/practice/binary-search-tree/Scarb.toml index c1a57b49..d119806b 100644 --- a/exercises/practice/binary-search-tree/Scarb.toml +++ b/exercises/practice/binary-search-tree/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/binary-search/Scarb.toml b/exercises/practice/binary-search/Scarb.toml index 8f42650e..ea3f90f5 100644 --- a/exercises/practice/binary-search/Scarb.toml +++ b/exercises/practice/binary-search/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/bob/.meta/example.cairo b/exercises/practice/bob/.meta/example.cairo index 8dd6ecec..6fae3e96 100644 --- a/exercises/practice/bob/.meta/example.cairo +++ b/exercises/practice/bob/.meta/example.cairo @@ -33,7 +33,7 @@ fn is_loud(input: @ByteArray) -> bool { uppercased.append_byte(to_uppercase(c)); i += 1; - }; + } has_letter && @uppercased == input } @@ -81,7 +81,7 @@ fn trim(input: @ByteArray) -> ByteArray { let mut start = 0; while start < input.len() && is_whitespace(input[start]) { start += 1; - }; + } let mut end = input.len() - 1; while end >= start { @@ -90,13 +90,13 @@ fn trim(input: @ByteArray) -> ByteArray { } end -= 1; - }; + } let mut j = start; while j <= end { result.append_byte(input[j]); j += 1; - }; + } result } diff --git a/exercises/practice/bob/Scarb.toml b/exercises/practice/bob/Scarb.toml index e1343197..8dae5750 100644 --- a/exercises/practice/bob/Scarb.toml +++ b/exercises/practice/bob/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/clock/.meta/example.cairo b/exercises/practice/clock/.meta/example.cairo index 268f4e4c..9e75555a 100644 --- a/exercises/practice/clock/.meta/example.cairo +++ b/exercises/practice/clock/.meta/example.cairo @@ -1,4 +1,4 @@ -use core::fmt::{Display, Formatter, Error}; +use core::fmt::{Display, Error, Formatter}; #[derive(Drop, PartialEq, Debug)] struct Clock { @@ -31,7 +31,7 @@ pub impl ClockImpl of ClockTrait { let mut mins = minutes; while mins < 0 { mins += 1440; - }; + } let mins: u32 = mins.try_into().unwrap(); Clock { minutes: mins % 1440 } } diff --git a/exercises/practice/clock/Scarb.toml b/exercises/practice/clock/Scarb.toml index a5e0f409..2ea0fdff 100644 --- a/exercises/practice/clock/Scarb.toml +++ b/exercises/practice/clock/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/clock/src/lib.cairo b/exercises/practice/clock/src/lib.cairo index 854060e2..e96ccf75 100644 --- a/exercises/practice/clock/src/lib.cairo +++ b/exercises/practice/clock/src/lib.cairo @@ -1,4 +1,4 @@ -use core::fmt::{Display, Formatter, Error}; +use core::fmt::{Display, Error, Formatter}; #[derive(Drop, PartialEq, Debug)] struct Clock { diff --git a/exercises/practice/collatz-conjecture/.meta/example.cairo b/exercises/practice/collatz-conjecture/.meta/example.cairo index 8ba0873e..396c3bfb 100644 --- a/exercises/practice/collatz-conjecture/.meta/example.cairo +++ b/exercises/practice/collatz-conjecture/.meta/example.cairo @@ -11,7 +11,7 @@ pub fn steps(number: usize) -> usize { working = 3 * working + 1; } count += 1; - }; + } count } diff --git a/exercises/practice/collatz-conjecture/Scarb.toml b/exercises/practice/collatz-conjecture/Scarb.toml index 7784c847..e3191375 100644 --- a/exercises/practice/collatz-conjecture/Scarb.toml +++ b/exercises/practice/collatz-conjecture/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/custom-set/.meta/example.cairo b/exercises/practice/custom-set/.meta/example.cairo index 09db272d..aabee28a 100644 --- a/exercises/practice/custom-set/.meta/example.cairo +++ b/exercises/practice/custom-set/.meta/example.cairo @@ -23,7 +23,7 @@ pub impl CustomSetImpl< let input = input.span(); for val in input { set.add(val.clone()); - }; + } set } @@ -41,7 +41,7 @@ pub impl CustomSetImpl< found = true; break; } - }; + } found } @@ -59,7 +59,7 @@ pub impl CustomSetImpl< break; } i += 1; - }; + } i == self.collection.len() } @@ -70,7 +70,7 @@ pub impl CustomSetImpl< if to_iterate.collection.len() > to_compare.collection.len() { to_iterate = other; to_compare = self; - }; + } let mut i = 0; while let Option::Some(value) = to_iterate.collection.get(i) { @@ -78,7 +78,7 @@ pub impl CustomSetImpl< break; } i += 1; - }; + } i == to_iterate.collection.len() } @@ -93,7 +93,7 @@ pub impl CustomSetImpl< if to_iterate.collection.len() > to_compare.collection.len() { to_iterate = other; to_compare = self; - }; + } let mut i = 0; while let Option::Some(boxed) = to_iterate.collection.get(i) { @@ -102,7 +102,7 @@ pub impl CustomSetImpl< collection.append(*value); } i += 1; - }; + } Self::new(@collection) } @@ -117,7 +117,7 @@ pub impl CustomSetImpl< collection.append(*unboxed); } i += 1; - }; + } Self::new(@collection) } @@ -128,12 +128,12 @@ pub impl CustomSetImpl< while let Option::Some(value) = self.collection.get(i) { collection.append(*value.unbox()); i += 1; - }; + } let mut i = 0; while let Option::Some(value) = other.collection.get(i) { collection.append(*value.unbox()); i += 1; - }; + } Self::new(@collection) } } diff --git a/exercises/practice/custom-set/Scarb.toml b/exercises/practice/custom-set/Scarb.toml index c5b3f6ea..fca971c3 100644 --- a/exercises/practice/custom-set/Scarb.toml +++ b/exercises/practice/custom-set/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/darts/Scarb.toml b/exercises/practice/darts/Scarb.toml index 975bce83..f48f3f7f 100644 --- a/exercises/practice/darts/Scarb.toml +++ b/exercises/practice/darts/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/difference-of-squares/.meta/example.cairo b/exercises/practice/difference-of-squares/.meta/example.cairo index 0b38971f..aaf3d2a5 100644 --- a/exercises/practice/difference-of-squares/.meta/example.cairo +++ b/exercises/practice/difference-of-squares/.meta/example.cairo @@ -2,7 +2,7 @@ pub fn square_of_sum(number: u64) -> u64 { let mut sum = 0; for current in 1..(number + 1) { sum += current; - }; + } sum * sum } @@ -10,7 +10,7 @@ pub fn sum_of_squares(number: u64) -> u64 { let mut sum = 0; for current in 1..(number + 1) { sum += current * current; - }; + } sum } diff --git a/exercises/practice/difference-of-squares/Scarb.toml b/exercises/practice/difference-of-squares/Scarb.toml index a8ca4ffb..f28f2621 100644 --- a/exercises/practice/difference-of-squares/Scarb.toml +++ b/exercises/practice/difference-of-squares/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/difference-of-squares/tests/difference_of_squares.cairo b/exercises/practice/difference-of-squares/tests/difference_of_squares.cairo index 09e27ba9..1ba1f396 100644 --- a/exercises/practice/difference-of-squares/tests/difference_of_squares.cairo +++ b/exercises/practice/difference-of-squares/tests/difference_of_squares.cairo @@ -1,5 +1,5 @@ use difference_of_squares::{ - square_of_sum, sum_of_squares, difference_of_squares as diff_of_squares, + difference_of_squares as diff_of_squares, square_of_sum, sum_of_squares, }; #[test] diff --git a/exercises/practice/dominoes/.meta/example.cairo b/exercises/practice/dominoes/.meta/example.cairo index eb38bf08..c4e9ea0f 100644 --- a/exercises/practice/dominoes/.meta/example.cairo +++ b/exercises/practice/dominoes/.meta/example.cairo @@ -97,7 +97,7 @@ pub fn chain(dominoes: @Array) -> Option> { d.insert(x.into(), d.get(x.into()) + 1); d.insert(y.into(), d.get(y.into()) + 1); i += 1; - }; + } let mut i = 0; let even_dot_types = loop { if i == 6 { @@ -129,13 +129,13 @@ fn chain_worker(dominoes: @Array) -> Array { i -= 1; let (x, y): Domino = *dominoes[i]; t.add(x, y); - }; + } let mut chain: Array = array![]; chain.append(first); let (_, mut x) = first; while let Option::Some(y) = t.pop_first(x) { chain.append((x, y)); x = y; - }; + } chain } diff --git a/exercises/practice/dominoes/Scarb.toml b/exercises/practice/dominoes/Scarb.toml index d71adc8d..d26485a1 100644 --- a/exercises/practice/dominoes/Scarb.toml +++ b/exercises/practice/dominoes/Scarb.toml @@ -4,6 +4,6 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" # See more keys and their definitions at https://docs.swmansion.com/scarb/docs/reference/manifest.html diff --git a/exercises/practice/dominoes/tests/dominoes.cairo b/exercises/practice/dominoes/tests/dominoes.cairo index de272649..acd2a1ef 100644 --- a/exercises/practice/dominoes/tests/dominoes.cairo +++ b/exercises/practice/dominoes/tests/dominoes.cairo @@ -95,7 +95,7 @@ fn sort(arr: @Array) -> Array { sorted_arr.append(normalize(*arr[min_domino_index])); visited.insert(min_domino_index.into(), true); sorted_len += 1; - }; + } sorted_arr } @@ -104,7 +104,7 @@ fn next_min_index(arr: @Array, ref visited: Felt252Dict) -> usize let mut next_min_domino_index = 0; while visited.get(next_min_domino_index) { next_min_domino_index += 1; - }; + } let mut min_domino_index: usize = next_min_domino_index.try_into().unwrap(); let mut i = arr.len(); @@ -115,7 +115,7 @@ fn next_min_index(arr: @Array, ref visited: Felt252Dict) -> usize min_domino_index = i; } } - }; + } min_domino_index } diff --git a/exercises/practice/eliuds-eggs/.meta/example.cairo b/exercises/practice/eliuds-eggs/.meta/example.cairo index 2e3eb530..ec18c7cc 100644 --- a/exercises/practice/eliuds-eggs/.meta/example.cairo +++ b/exercises/practice/eliuds-eggs/.meta/example.cairo @@ -12,7 +12,7 @@ pub fn eggCount(number: u64) -> u64 { } current /= 2; - }; + } count } diff --git a/exercises/practice/eliuds-eggs/Scarb.toml b/exercises/practice/eliuds-eggs/Scarb.toml index 2c7a9896..398a1c0e 100644 --- a/exercises/practice/eliuds-eggs/Scarb.toml +++ b/exercises/practice/eliuds-eggs/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/etl/.meta/example.cairo b/exercises/practice/etl/.meta/example.cairo index d0f22f2a..4804e7dc 100644 --- a/exercises/practice/etl/.meta/example.cairo +++ b/exercises/practice/etl/.meta/example.cairo @@ -1,5 +1,5 @@ use core::dict::Felt252Dict; -use core::nullable::{match_nullable, FromNullableResult}; +use core::nullable::{FromNullableResult, match_nullable}; pub fn transform(legacy: Felt252Dict>>) -> Felt252Dict { let mut legacy = legacy; @@ -13,7 +13,7 @@ pub fn transform(legacy: Felt252Dict>>) -> Felt252Dict { for letter in letters { result.insert(lowercase(letter).into(), point); } - }; + } result } diff --git a/exercises/practice/etl/Scarb.toml b/exercises/practice/etl/Scarb.toml index 0ff24f6f..f0542a45 100644 --- a/exercises/practice/etl/Scarb.toml +++ b/exercises/practice/etl/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/etl/tests/etl.cairo b/exercises/practice/etl/tests/etl.cairo index b9235f1f..0cb16f58 100644 --- a/exercises/practice/etl/tests/etl.cairo +++ b/exercises/practice/etl/tests/etl.cairo @@ -53,44 +53,18 @@ fn more_keys() { fn full_dataset() { let legacy_data = input_from( array![ - (1, array!['A', 'E', 'I', 'O', 'U', 'L', 'N', 'R', 'S', 'T']), - (2, array!['D', 'G']), - (3, array!['B', 'C', 'M', 'P']), - (4, array!['F', 'H', 'V', 'W', 'Y']), - (5, array!['K']), - (8, array!['J', 'X']), - (10, array!['Q', 'Z']), + (1, array!['A', 'E', 'I', 'O', 'U', 'L', 'N', 'R', 'S', 'T']), (2, array!['D', 'G']), + (3, array!['B', 'C', 'M', 'P']), (4, array!['F', 'H', 'V', 'W', 'Y']), (5, array!['K']), + (8, array!['J', 'X']), (10, array!['Q', 'Z']), ], ); let expected = expected_from( array![ - ('a', 1), - ('b', 3), - ('c', 3), - ('d', 2), - ('e', 1), - ('f', 4), - ('g', 2), - ('h', 4), - ('i', 1), - ('j', 8), - ('k', 5), - ('l', 1), - ('m', 3), - ('n', 1), - ('o', 1), - ('p', 3), - ('q', 10), - ('r', 1), - ('s', 1), - ('t', 1), - ('u', 1), - ('v', 4), - ('w', 4), - ('x', 8), - ('y', 4), - ('z', 10), + ('a', 1), ('b', 3), ('c', 3), ('d', 2), ('e', 1), ('f', 4), ('g', 2), ('h', 4), + ('i', 1), ('j', 8), ('k', 5), ('l', 1), ('m', 3), ('n', 1), ('o', 1), ('p', 3), + ('q', 10), ('r', 1), ('s', 1), ('t', 1), ('u', 1), ('v', 4), ('w', 4), ('x', 8), + ('y', 4), ('z', 10), ], ); @@ -101,7 +75,7 @@ fn input_from(v: Array<(u32, Array)>) -> Felt252Dict>> { let mut dict: Felt252Dict>> = Default::default(); for (num, letters) in v { dict.insert(num.into(), NullableTrait::new(letters.span())); - }; + } dict } @@ -109,7 +83,7 @@ fn expected_from(v: Array<(u8, u32)>) -> Felt252Dict { let mut dict: Felt252Dict = Default::default(); for (char, num) in v { dict.insert(char.into(), num); - }; + } dict } @@ -123,7 +97,7 @@ fn assert_dicts_eq(expected: Felt252Dict, actual: Felt252Dict) { unequal = true; break; } - }; + } if unequal { let mut f: Formatter = Default::default(); writeln!(f, "\nexpected:").expect('write expected'); @@ -149,7 +123,7 @@ fn write_dict(mut f: Formatter, dict: Felt252Dict) -> Formatter { letter.append_byte(char); writeln!(f, " \"{}\": {},", letter, points).expect('should write letter'); } - }; + } writeln!(f, "}}").expect('should write }'); f } diff --git a/exercises/practice/flower-field/.meta/example.cairo b/exercises/practice/flower-field/.meta/example.cairo index 2b2a6b67..bf3df2cd 100644 --- a/exercises/practice/flower-field/.meta/example.cairo +++ b/exercises/practice/flower-field/.meta/example.cairo @@ -17,7 +17,7 @@ impl BoardImpl of BoardTrait { for y in 0..num_rows { let annotated_row = self.annotated_row(y); annotated_board.append(annotated_row); - }; + } annotated_board } @@ -38,7 +38,7 @@ impl BoardImpl of BoardTrait { } else { row.append_byte(c); } - }; + } row } @@ -57,7 +57,7 @@ impl BoardImpl of BoardTrait { count += 1; } } - }; + } // If no flowers are adjacent, return ' ' (empty); otherwise, return the count as a char if count == 0 { diff --git a/exercises/practice/flower-field/Scarb.toml b/exercises/practice/flower-field/Scarb.toml index be5bc33f..ece855e3 100644 --- a/exercises/practice/flower-field/Scarb.toml +++ b/exercises/practice/flower-field/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/grains/.meta/example.cairo b/exercises/practice/grains/.meta/example.cairo index 3f414249..9a50fc53 100644 --- a/exercises/practice/grains/.meta/example.cairo +++ b/exercises/practice/grains/.meta/example.cairo @@ -9,6 +9,6 @@ pub fn total() -> u64 { let mut result = 0; for s in 1..65_u8 { result += square(s); - }; + } result } diff --git a/exercises/practice/grains/Scarb.toml b/exercises/practice/grains/Scarb.toml index 1b2546b4..6e08f965 100644 --- a/exercises/practice/grains/Scarb.toml +++ b/exercises/practice/grains/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/hamming/.meta/example.cairo b/exercises/practice/hamming/.meta/example.cairo index c3564ee1..69e43882 100644 --- a/exercises/practice/hamming/.meta/example.cairo +++ b/exercises/practice/hamming/.meta/example.cairo @@ -16,7 +16,7 @@ pub fn distance(strand1: ByteArray, strand2: ByteArray) -> u256 { } i += 1; - }; + } count } diff --git a/exercises/practice/hamming/Scarb.toml b/exercises/practice/hamming/Scarb.toml index 68d71b10..155067d6 100644 --- a/exercises/practice/hamming/Scarb.toml +++ b/exercises/practice/hamming/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/hello-world/Scarb.toml b/exercises/practice/hello-world/Scarb.toml index 53eec7cc..f9cfb756 100644 --- a/exercises/practice/hello-world/Scarb.toml +++ b/exercises/practice/hello-world/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/high-scores/.meta/example.cairo b/exercises/practice/high-scores/.meta/example.cairo index e4f6384b..28595601 100644 --- a/exercises/practice/high-scores/.meta/example.cairo +++ b/exercises/practice/high-scores/.meta/example.cairo @@ -25,13 +25,13 @@ pub impl HighScoresImpl of HighScoresTrait { fn personal_best(self: @HighScores) -> Option { if self.scores.is_empty() { return Option::None; - }; + } let mut max = 0; for score in self.scores.span() { if score > @max { max = *score; } - }; + } Option::Some(max) } @@ -62,14 +62,14 @@ fn insertion_sort(span: Span) -> Array { while j != 0 && elem > sorted.get(j - 1) { sorted.insert(j, sorted.get(j - 1)); j -= 1; - }; + } sorted.insert(j.into(), elem); - }; + } // collect all elements into an array let mut sorted_arr: Array = array![]; for i in 0..span.len() { sorted_arr.append(sorted.get(i.into())); - }; + } sorted_arr } diff --git a/exercises/practice/high-scores/Scarb.toml b/exercises/practice/high-scores/Scarb.toml index 1161da8f..c1b7a7b1 100644 --- a/exercises/practice/high-scores/Scarb.toml +++ b/exercises/practice/high-scores/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/isbn-verifier/.meta/example.cairo b/exercises/practice/isbn-verifier/.meta/example.cairo index b430ec3b..0064adcc 100644 --- a/exercises/practice/isbn-verifier/.meta/example.cairo +++ b/exercises/practice/isbn-verifier/.meta/example.cairo @@ -28,7 +28,7 @@ pub fn is_valid(isbn: ByteArray) -> bool { }, } i += 1; - }; + } // Step 4: Return true if valid (sum % 11 == 0). valid && sum % 11 == 0 @@ -42,7 +42,7 @@ fn filter(isbn: ByteArray) -> ByteArray { filtered_isbn.append_byte(isbn[i]); } i += 1; - }; + } filtered_isbn } diff --git a/exercises/practice/isbn-verifier/Scarb.toml b/exercises/practice/isbn-verifier/Scarb.toml index 9332e797..bcfac405 100644 --- a/exercises/practice/isbn-verifier/Scarb.toml +++ b/exercises/practice/isbn-verifier/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/isogram/.meta/example.cairo b/exercises/practice/isogram/.meta/example.cairo index 0672c48f..b5c4ed38 100644 --- a/exercises/practice/isogram/.meta/example.cairo +++ b/exercises/practice/isogram/.meta/example.cairo @@ -17,7 +17,7 @@ pub fn is_isogram(phrase: ByteArray) -> bool { } i += 1; - }; + } success } diff --git a/exercises/practice/isogram/Scarb.toml b/exercises/practice/isogram/Scarb.toml index 9e41b5b4..959e27c2 100644 --- a/exercises/practice/isogram/Scarb.toml +++ b/exercises/practice/isogram/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/kindergarten-garden/.meta/example.cairo b/exercises/practice/kindergarten-garden/.meta/example.cairo index eae1c252..d63456a2 100644 --- a/exercises/practice/kindergarten-garden/.meta/example.cairo +++ b/exercises/practice/kindergarten-garden/.meta/example.cairo @@ -50,13 +50,13 @@ fn lines(diagram: @ByteArray) -> [ByteArray; 2] { while diagram[i] != '\n' { line1.append_byte(diagram[i]); i += 1; - }; + } // `i` is at the newline char index, so everything after it is line 2 for i in (i + 1)..diagram.len() { line2.append_byte(diagram[i]); - }; + } - [line1, line2] + return [line1, line2]; } /// Mapping plant characters to plant names diff --git a/exercises/practice/kindergarten-garden/Scarb.toml b/exercises/practice/kindergarten-garden/Scarb.toml index c22e5c15..3647041b 100644 --- a/exercises/practice/kindergarten-garden/Scarb.toml +++ b/exercises/practice/kindergarten-garden/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/kindergarten-garden/tests/kindergarten_garden.cairo b/exercises/practice/kindergarten-garden/tests/kindergarten_garden.cairo index 52f15781..3f9e204b 100644 --- a/exercises/practice/kindergarten-garden/tests/kindergarten_garden.cairo +++ b/exercises/practice/kindergarten-garden/tests/kindergarten_garden.cairo @@ -1,4 +1,4 @@ -use kindergarten_garden::{plants, Plant, Student}; +use kindergarten_garden::{Plant, Student, plants}; #[test] fn garden_with_single_student() { diff --git a/exercises/practice/knapsack/.meta/example.cairo b/exercises/practice/knapsack/.meta/example.cairo index f9c70b2b..f57fb6b3 100644 --- a/exercises/practice/knapsack/.meta/example.cairo +++ b/exercises/practice/knapsack/.meta/example.cairo @@ -48,7 +48,7 @@ pub fn maximum_value(maximum_weight: u32, items: Span) -> u32 { max_values.set(row, w, max_values.at(item_index, w)); } } - }; + } max_values.at(items.len(), maximum_weight) } diff --git a/exercises/practice/knapsack/Scarb.toml b/exercises/practice/knapsack/Scarb.toml index e08d60d1..572b197b 100644 --- a/exercises/practice/knapsack/Scarb.toml +++ b/exercises/practice/knapsack/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/knapsack/tests/knapsack.cairo b/exercises/practice/knapsack/tests/knapsack.cairo index 8196771a..3af251d9 100644 --- a/exercises/practice/knapsack/tests/knapsack.cairo +++ b/exercises/practice/knapsack/tests/knapsack.cairo @@ -1,4 +1,4 @@ -use knapsack::{maximum_value, Item}; +use knapsack::{Item, maximum_value}; #[test] fn no_items() { @@ -24,11 +24,8 @@ fn one_item_too_heavy() { fn five_items_cannot_be_greedy_by_weight() { let max_weight = 10; let items = array![ - Item { weight: 2, value: 5 }, - Item { weight: 2, value: 5 }, - Item { weight: 2, value: 5 }, - Item { weight: 2, value: 5 }, - Item { weight: 10, value: 21 }, + Item { weight: 2, value: 5 }, Item { weight: 2, value: 5 }, Item { weight: 2, value: 5 }, + Item { weight: 2, value: 5 }, Item { weight: 10, value: 21 }, ]; let output = maximum_value(max_weight, items.span()); let expected = 21; @@ -40,11 +37,8 @@ fn five_items_cannot_be_greedy_by_weight() { fn five_items_cannot_be_greedy_by_value() { let max_weight = 10; let items = array![ - Item { weight: 2, value: 20 }, - Item { weight: 2, value: 20 }, - Item { weight: 2, value: 20 }, - Item { weight: 2, value: 20 }, - Item { weight: 10, value: 50 }, + Item { weight: 2, value: 20 }, Item { weight: 2, value: 20 }, Item { weight: 2, value: 20 }, + Item { weight: 2, value: 20 }, Item { weight: 10, value: 50 }, ]; let output = maximum_value(max_weight, items.span()); let expected = 80; @@ -56,9 +50,7 @@ fn five_items_cannot_be_greedy_by_value() { fn example_knapsack() { let max_weight = 10; let items = array![ - Item { weight: 5, value: 10 }, - Item { weight: 4, value: 40 }, - Item { weight: 6, value: 30 }, + Item { weight: 5, value: 10 }, Item { weight: 4, value: 40 }, Item { weight: 6, value: 30 }, Item { weight: 4, value: 50 }, ]; let output = maximum_value(max_weight, items.span()); @@ -71,13 +63,9 @@ fn example_knapsack() { fn test_8_items() { let max_weight = 104; let items = array![ - Item { weight: 25, value: 350 }, - Item { weight: 35, value: 400 }, - Item { weight: 45, value: 450 }, - Item { weight: 5, value: 20 }, - Item { weight: 25, value: 70 }, - Item { weight: 3, value: 8 }, - Item { weight: 2, value: 5 }, + Item { weight: 25, value: 350 }, Item { weight: 35, value: 400 }, + Item { weight: 45, value: 450 }, Item { weight: 5, value: 20 }, + Item { weight: 25, value: 70 }, Item { weight: 3, value: 8 }, Item { weight: 2, value: 5 }, Item { weight: 2, value: 5 }, ]; let output = maximum_value(max_weight, items.span()); @@ -90,20 +78,13 @@ fn test_8_items() { fn test_15_items() { let max_weight = 750; let items = array![ - Item { weight: 70, value: 135 }, - Item { weight: 73, value: 139 }, - Item { weight: 77, value: 149 }, - Item { weight: 80, value: 150 }, - Item { weight: 82, value: 156 }, - Item { weight: 87, value: 163 }, - Item { weight: 90, value: 173 }, - Item { weight: 94, value: 184 }, - Item { weight: 98, value: 192 }, - Item { weight: 106, value: 201 }, - Item { weight: 110, value: 210 }, - Item { weight: 113, value: 214 }, - Item { weight: 115, value: 221 }, - Item { weight: 118, value: 229 }, + Item { weight: 70, value: 135 }, Item { weight: 73, value: 139 }, + Item { weight: 77, value: 149 }, Item { weight: 80, value: 150 }, + Item { weight: 82, value: 156 }, Item { weight: 87, value: 163 }, + Item { weight: 90, value: 173 }, Item { weight: 94, value: 184 }, + Item { weight: 98, value: 192 }, Item { weight: 106, value: 201 }, + Item { weight: 110, value: 210 }, Item { weight: 113, value: 214 }, + Item { weight: 115, value: 221 }, Item { weight: 118, value: 229 }, Item { weight: 120, value: 240 }, ]; let output = maximum_value(max_weight, items.span()); diff --git a/exercises/practice/largest-series-product/Scarb.toml b/exercises/practice/largest-series-product/Scarb.toml index ccbf2ba7..a97225ad 100644 --- a/exercises/practice/largest-series-product/Scarb.toml +++ b/exercises/practice/largest-series-product/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/largest-series-product/tests/largest_series_product.cairo b/exercises/practice/largest-series-product/tests/largest_series_product.cairo index a2a7f5ef..11e54988 100644 --- a/exercises/practice/largest-series-product/tests/largest_series_product.cairo +++ b/exercises/practice/largest-series-product/tests/largest_series_product.cairo @@ -1,4 +1,4 @@ -use largest_series_product::{lsp, Error}; +use largest_series_product::{Error, lsp}; #[test] fn return_is_a_result() { diff --git a/exercises/practice/leap/Scarb.toml b/exercises/practice/leap/Scarb.toml index 21ed3492..e96f328e 100644 --- a/exercises/practice/leap/Scarb.toml +++ b/exercises/practice/leap/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/linked-list/Scarb.toml b/exercises/practice/linked-list/Scarb.toml index 6f95bcc2..49892eea 100644 --- a/exercises/practice/linked-list/Scarb.toml +++ b/exercises/practice/linked-list/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/linked-list/tests/linked_list.cairo b/exercises/practice/linked-list/tests/linked_list.cairo index 9d525f67..3ad8ae1d 100644 --- a/exercises/practice/linked-list/tests/linked_list.cairo +++ b/exercises/practice/linked-list/tests/linked_list.cairo @@ -1,4 +1,4 @@ -use linked_list::{DoublyLinkedListTrait as DoublyLinkedList}; +use linked_list::DoublyLinkedListTrait as DoublyLinkedList; #[test] fn pop_gets_element_from_the_list() { diff --git a/exercises/practice/luhn/.meta/example.cairo b/exercises/practice/luhn/.meta/example.cairo index 7a6cfced..fb8d2e03 100644 --- a/exercises/practice/luhn/.meta/example.cairo +++ b/exercises/practice/luhn/.meta/example.cairo @@ -52,7 +52,7 @@ pub fn valid(candidate: ByteArray) -> bool { // Flip should_double for alternating digits should_double = !should_double; count_digits += 1; - }; + } valid && count_digits > 1 && processed_digits_sum % 10 == 0 } diff --git a/exercises/practice/luhn/Scarb.toml b/exercises/practice/luhn/Scarb.toml index ecc2b3fd..f3e9d6c8 100644 --- a/exercises/practice/luhn/Scarb.toml +++ b/exercises/practice/luhn/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/matching-brackets/.meta/example.cairo b/exercises/practice/matching-brackets/.meta/example.cairo index feec651a..bdf4f1fc 100644 --- a/exercises/practice/matching-brackets/.meta/example.cairo +++ b/exercises/practice/matching-brackets/.meta/example.cairo @@ -22,7 +22,7 @@ pub fn is_paired(value: ByteArray) -> bool { while i < stop { popped.append(*stack[i]); i += 1; - }; + } let last = *stack[stop]; stack = popped.clone(); @@ -34,7 +34,7 @@ pub fn is_paired(value: ByteArray) -> bool { } } i += 1; - }; + } if result { result = stack.is_empty(); diff --git a/exercises/practice/matching-brackets/Scarb.toml b/exercises/practice/matching-brackets/Scarb.toml index 622c8a09..facb227c 100644 --- a/exercises/practice/matching-brackets/Scarb.toml +++ b/exercises/practice/matching-brackets/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/minesweeper/.meta/example.cairo b/exercises/practice/minesweeper/.meta/example.cairo index 3ba77629..d145e4dd 100644 --- a/exercises/practice/minesweeper/.meta/example.cairo +++ b/exercises/practice/minesweeper/.meta/example.cairo @@ -17,7 +17,7 @@ impl BoardImpl of BoardTrait { for y in 0..num_rows { let annotated_row = self.annotated_row(y); annotated_board.append(annotated_row); - }; + } annotated_board } @@ -38,7 +38,7 @@ impl BoardImpl of BoardTrait { } else { row.append_byte(c); } - }; + } row } @@ -57,7 +57,7 @@ impl BoardImpl of BoardTrait { count += 1; } } - }; + } // If no mines are adjacent, return ' ' (empty); otherwise, return the count as a char if count == 0 { diff --git a/exercises/practice/minesweeper/Scarb.toml b/exercises/practice/minesweeper/Scarb.toml index 6816b4c6..da7fbc50 100644 --- a/exercises/practice/minesweeper/Scarb.toml +++ b/exercises/practice/minesweeper/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/nth-prime/.meta/example.cairo b/exercises/practice/nth-prime/.meta/example.cairo index ac2d84cb..fcd856b1 100644 --- a/exercises/practice/nth-prime/.meta/example.cairo +++ b/exercises/practice/nth-prime/.meta/example.cairo @@ -11,7 +11,7 @@ pub fn prime(n: u32) -> u32 { if is_prime(candidate) { count += 1; } - }; + } candidate } } @@ -25,6 +25,6 @@ fn is_prime(n: u32) -> bool { break; } i += 1; - }; + } result } diff --git a/exercises/practice/nth-prime/Scarb.toml b/exercises/practice/nth-prime/Scarb.toml index ca0dc44b..9d2d8fda 100644 --- a/exercises/practice/nth-prime/Scarb.toml +++ b/exercises/practice/nth-prime/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/nucleotide-count/.meta/example.cairo b/exercises/practice/nucleotide-count/.meta/example.cairo index 72adc351..0f7ed74f 100644 --- a/exercises/practice/nucleotide-count/.meta/example.cairo +++ b/exercises/practice/nucleotide-count/.meta/example.cairo @@ -24,7 +24,7 @@ pub fn counts(strand: ByteArray) -> Counter { panic!("Invalid nucleotide in strand"); } i += 1; - }; + } counter } diff --git a/exercises/practice/nucleotide-count/Scarb.toml b/exercises/practice/nucleotide-count/Scarb.toml index d05a4ae0..859b0a9a 100644 --- a/exercises/practice/nucleotide-count/Scarb.toml +++ b/exercises/practice/nucleotide-count/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/nucleotide-count/tests/nucleotide_count.cairo b/exercises/practice/nucleotide-count/tests/nucleotide_count.cairo index 804e3b30..2f7e1189 100644 --- a/exercises/practice/nucleotide-count/tests/nucleotide_count.cairo +++ b/exercises/practice/nucleotide-count/tests/nucleotide_count.cairo @@ -1,4 +1,4 @@ -use nucleotide_count::{counts, Counter}; +use nucleotide_count::{Counter, counts}; #[test] fn empty_strand() { diff --git a/exercises/practice/pangram/.meta/example.cairo b/exercises/practice/pangram/.meta/example.cairo index 0b48fc56..5e4edba7 100644 --- a/exercises/practice/pangram/.meta/example.cairo +++ b/exercises/practice/pangram/.meta/example.cairo @@ -12,7 +12,7 @@ pub fn is_pangram(sentence: ByteArray) -> bool { seen.insert(chr.into(), true); } i += 1; - }; + } let mut success = true; let mut curr: u8 = 'a'; @@ -23,7 +23,7 @@ pub fn is_pangram(sentence: ByteArray) -> bool { } curr += 1; - }; + } success } diff --git a/exercises/practice/pangram/Scarb.toml b/exercises/practice/pangram/Scarb.toml index 9b0d1307..1f3fa6ea 100644 --- a/exercises/practice/pangram/Scarb.toml +++ b/exercises/practice/pangram/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/pascals-triangle/.meta/example.cairo b/exercises/practice/pascals-triangle/.meta/example.cairo index 709a961d..be5a514e 100644 --- a/exercises/practice/pascals-triangle/.meta/example.cairo +++ b/exercises/practice/pascals-triangle/.meta/example.cairo @@ -24,14 +24,14 @@ pub fn rows(count: u32) -> Array> { }; row.append(valueA + valueB); - }; + } j += 1; - }; + } rows.append(row); i += 1; - }; + } rows } diff --git a/exercises/practice/pascals-triangle/Scarb.toml b/exercises/practice/pascals-triangle/Scarb.toml index 46c1fe31..ec33abd3 100644 --- a/exercises/practice/pascals-triangle/Scarb.toml +++ b/exercises/practice/pascals-triangle/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/pascals-triangle/tests/pascals_triangle.cairo b/exercises/practice/pascals-triangle/tests/pascals_triangle.cairo index cc5125bd..ea6197e9 100644 --- a/exercises/practice/pascals-triangle/tests/pascals_triangle.cairo +++ b/exercises/practice/pascals-triangle/tests/pascals_triangle.cairo @@ -56,11 +56,7 @@ fn five_rows() { fn six_rows() { let output = rows(6); let expected: Array> = array![ - array![1], - array![1, 1], - array![1, 2, 1], - array![1, 3, 3, 1], - array![1, 4, 6, 4, 1], + array![1], array![1, 1], array![1, 2, 1], array![1, 3, 3, 1], array![1, 4, 6, 4, 1], array![1, 5, 10, 10, 5, 1], ]; assert_eq!(output, expected); @@ -71,15 +67,9 @@ fn six_rows() { fn ten_rows() { let output = rows(10); let expected: Array> = array![ - array![1], - array![1, 1], - array![1, 2, 1], - array![1, 3, 3, 1], - array![1, 4, 6, 4, 1], - array![1, 5, 10, 10, 5, 1], - array![1, 6, 15, 20, 15, 6, 1], - array![1, 7, 21, 35, 35, 21, 7, 1], - array![1, 8, 28, 56, 70, 56, 28, 8, 1], + array![1], array![1, 1], array![1, 2, 1], array![1, 3, 3, 1], array![1, 4, 6, 4, 1], + array![1, 5, 10, 10, 5, 1], array![1, 6, 15, 20, 15, 6, 1], + array![1, 7, 21, 35, 35, 21, 7, 1], array![1, 8, 28, 56, 70, 56, 28, 8, 1], array![1, 9, 36, 84, 126, 126, 84, 36, 9, 1], ]; assert_eq!(output, expected); diff --git a/exercises/practice/perfect-numbers/.meta/example.cairo b/exercises/practice/perfect-numbers/.meta/example.cairo index 731ac01a..1b247aa6 100644 --- a/exercises/practice/perfect-numbers/.meta/example.cairo +++ b/exercises/practice/perfect-numbers/.meta/example.cairo @@ -9,7 +9,7 @@ pub fn classify(number: u64) -> Classification { assert!(number > 0, "Classification is only possible for positive integers."); if number == 1 { return Classification::Deficient; - }; + } let mut sum = 1; let mut i = 2; @@ -24,7 +24,7 @@ pub fn classify(number: u64) -> Classification { sum += increment; } i += 1; - }; + } if sum < number { Classification::Deficient diff --git a/exercises/practice/perfect-numbers/Scarb.toml b/exercises/practice/perfect-numbers/Scarb.toml index b48efccd..55d0b0e6 100644 --- a/exercises/practice/perfect-numbers/Scarb.toml +++ b/exercises/practice/perfect-numbers/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/perfect-numbers/tests/perfect_numbers.cairo b/exercises/practice/perfect-numbers/tests/perfect_numbers.cairo index c4d33b03..adb7416b 100644 --- a/exercises/practice/perfect-numbers/tests/perfect_numbers.cairo +++ b/exercises/practice/perfect-numbers/tests/perfect_numbers.cairo @@ -1,4 +1,4 @@ -use perfect_numbers::{classify, Classification}; +use perfect_numbers::{Classification, classify}; // Perfect numbers diff --git a/exercises/practice/phone-number/.meta/example.cairo b/exercises/practice/phone-number/.meta/example.cairo index 0f06050b..f282bd99 100644 --- a/exercises/practice/phone-number/.meta/example.cairo +++ b/exercises/practice/phone-number/.meta/example.cairo @@ -11,7 +11,7 @@ pub fn clean(phrase: ByteArray) -> ByteArray { } i += 1; - }; + } assert!(cleaned.len() >= 10, "must not be fewer than 10 digits"); @@ -24,10 +24,10 @@ pub fn clean(phrase: ByteArray) -> ByteArray { while i < cleaned.len() { sliced.append_byte(cleaned[i]); i += 1; - }; + } cleaned = sliced.clone(); - }; + } assert!(cleaned.len() <= 11, "must not be greater than 11 digits"); assert!(cleaned[0] != '0', "area code cannot start with zero"); diff --git a/exercises/practice/phone-number/Scarb.toml b/exercises/practice/phone-number/Scarb.toml index f9425308..bfa5e903 100644 --- a/exercises/practice/phone-number/Scarb.toml +++ b/exercises/practice/phone-number/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/prime-factors/.meta/example.cairo b/exercises/practice/prime-factors/.meta/example.cairo index 9f4419e2..929a2de1 100644 --- a/exercises/practice/prime-factors/.meta/example.cairo +++ b/exercises/practice/prime-factors/.meta/example.cairo @@ -8,16 +8,16 @@ pub fn factors(n: u64) -> Array { while val % 2 == 0 { out.append(2); val /= 2; - }; + } let mut possible = 3; while val != 1 { while val % possible == 0 { out.append(possible); val /= possible; - }; + } possible += 2; - }; + } out } diff --git a/exercises/practice/prime-factors/Scarb.toml b/exercises/practice/prime-factors/Scarb.toml index c4572df0..98e1e55d 100644 --- a/exercises/practice/prime-factors/Scarb.toml +++ b/exercises/practice/prime-factors/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/protein-translation/.meta/example.cairo b/exercises/practice/protein-translation/.meta/example.cairo index a774c432..10393481 100644 --- a/exercises/practice/protein-translation/.meta/example.cairo +++ b/exercises/practice/protein-translation/.meta/example.cairo @@ -1,5 +1,5 @@ use core::dict::Felt252Dict; -use core::nullable::{match_nullable, FromNullableResult}; +use core::nullable::{FromNullableResult, match_nullable}; #[derive(Drop, Debug, PartialEq, Copy)] pub enum AminoAcid { @@ -41,7 +41,7 @@ pub fn proteins(strand: ByteArray) -> Array { } }, } - }; + } assert!(codon_index >= strand.len() || stopped, "Invalid codon"); diff --git a/exercises/practice/protein-translation/Scarb.toml b/exercises/practice/protein-translation/Scarb.toml index f30c7b24..81b3be98 100644 --- a/exercises/practice/protein-translation/Scarb.toml +++ b/exercises/practice/protein-translation/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/protein-translation/tests/protein_translation.cairo b/exercises/practice/protein-translation/tests/protein_translation.cairo index 4c6841dc..42aad459 100644 --- a/exercises/practice/protein-translation/tests/protein_translation.cairo +++ b/exercises/practice/protein-translation/tests/protein_translation.cairo @@ -1,4 +1,4 @@ -use protein_translation::{proteins, AminoAcid}; +use protein_translation::{AminoAcid, proteins}; #[test] fn empty_rna_sequence_results_in_no_proteins() { diff --git a/exercises/practice/proverb/.meta/example.cairo b/exercises/practice/proverb/.meta/example.cairo index 7df778c5..a66c3a36 100644 --- a/exercises/practice/proverb/.meta/example.cairo +++ b/exercises/practice/proverb/.meta/example.cairo @@ -7,6 +7,6 @@ pub fn recite(items: @Array) -> ByteArray { stanzas += format!("For want of a {} the {} was lost.\n", items[index], items[index + 1]); } - }; + } stanzas } diff --git a/exercises/practice/proverb/Scarb.toml b/exercises/practice/proverb/Scarb.toml index efd57ea1..afdde925 100644 --- a/exercises/practice/proverb/Scarb.toml +++ b/exercises/practice/proverb/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/raindrops/Scarb.toml b/exercises/practice/raindrops/Scarb.toml index c3f2ae0d..d740a3af 100644 --- a/exercises/practice/raindrops/Scarb.toml +++ b/exercises/practice/raindrops/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/rational-numbers/.meta/example.cairo b/exercises/practice/rational-numbers/.meta/example.cairo index c6e5a4c6..8d37af57 100644 --- a/exercises/practice/rational-numbers/.meta/example.cairo +++ b/exercises/practice/rational-numbers/.meta/example.cairo @@ -76,7 +76,7 @@ pub impl RationalPow of RationalPowTrait { fn pow(self: @Rational, power: i128) -> Rational { if *self.numer == 0 { return *self; - }; + } let power_abs = abs(power); @@ -126,7 +126,7 @@ fn pow(base: u128, mut power: u128) -> u128 { while power != 0 { result *= base; power -= 1; - }; + } result.try_into().expect('too large to fit output type') } @@ -139,7 +139,7 @@ fn nth_root(m: u128, n: u128) -> u128 { break; } root += 1; - }; + } root } @@ -148,7 +148,7 @@ fn gcd_two_numbers(mut a: u128, mut b: u128) -> u128 { let r = a % b; a = b; b = r; - }; + } a } diff --git a/exercises/practice/rational-numbers/Scarb.toml b/exercises/practice/rational-numbers/Scarb.toml index 267b67cb..41b15fa7 100644 --- a/exercises/practice/rational-numbers/Scarb.toml +++ b/exercises/practice/rational-numbers/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/rational-numbers/tests/rational_numbers.cairo b/exercises/practice/rational-numbers/tests/rational_numbers.cairo index 26194b4f..c3acd25a 100644 --- a/exercises/practice/rational-numbers/tests/rational_numbers.cairo +++ b/exercises/practice/rational-numbers/tests/rational_numbers.cairo @@ -1,4 +1,4 @@ -use rational_numbers::{RationalTrait as Rational, RationalAbsTrait, RationalPowTrait}; +use rational_numbers::{RationalAbsTrait, RationalPowTrait, RationalTrait as Rational}; // Tests of type: Arithmetic diff --git a/exercises/practice/resistor-color-duo/Scarb.toml b/exercises/practice/resistor-color-duo/Scarb.toml index 1da067be..c65e7d4c 100644 --- a/exercises/practice/resistor-color-duo/Scarb.toml +++ b/exercises/practice/resistor-color-duo/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/resistor-color-duo/tests/resistor_color_duo.cairo b/exercises/practice/resistor-color-duo/tests/resistor_color_duo.cairo index 7c7b3c07..d5cc44a6 100644 --- a/exercises/practice/resistor-color-duo/tests/resistor_color_duo.cairo +++ b/exercises/practice/resistor-color-duo/tests/resistor_color_duo.cairo @@ -1,4 +1,4 @@ -use resistor_color_duo::{value, Color}; +use resistor_color_duo::{Color, value}; #[test] fn brown_and_black() { diff --git a/exercises/practice/resistor-color/.meta/example.cairo b/exercises/practice/resistor-color/.meta/example.cairo index afad1950..7f63d531 100644 --- a/exercises/practice/resistor-color/.meta/example.cairo +++ b/exercises/practice/resistor-color/.meta/example.cairo @@ -29,15 +29,7 @@ pub fn color_code(color: Color) -> u8 { pub fn colors() -> Array { array![ - Color::Black, - Color::Brown, - Color::Red, - Color::Orange, - Color::Yellow, - Color::Green, - Color::Blue, - Color::Violet, - Color::Grey, - Color::White, + Color::Black, Color::Brown, Color::Red, Color::Orange, Color::Yellow, Color::Green, + Color::Blue, Color::Violet, Color::Grey, Color::White, ] } diff --git a/exercises/practice/resistor-color/tests/resistor_color.cairo b/exercises/practice/resistor-color/tests/resistor_color.cairo index 6910c9a7..5796974f 100644 --- a/exercises/practice/resistor-color/tests/resistor_color.cairo +++ b/exercises/practice/resistor-color/tests/resistor_color.cairo @@ -1,4 +1,4 @@ -use resistor_color::{color_code, colors, Color}; +use resistor_color::{Color, color_code, colors}; #[test] @@ -29,16 +29,8 @@ fn orange() { fn test_colors() { let output = colors(); let expected = array![ - Color::Black, - Color::Brown, - Color::Red, - Color::Orange, - Color::Yellow, - Color::Green, - Color::Blue, - Color::Violet, - Color::Grey, - Color::White, + Color::Black, Color::Brown, Color::Red, Color::Orange, Color::Yellow, Color::Green, + Color::Blue, Color::Violet, Color::Grey, Color::White, ]; assert_eq!(output, expected); } diff --git a/exercises/practice/reverse-string/Scarb.toml b/exercises/practice/reverse-string/Scarb.toml index 95d652ee..6d08003a 100644 --- a/exercises/practice/reverse-string/Scarb.toml +++ b/exercises/practice/reverse-string/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/rna-transcription/.meta/example.cairo b/exercises/practice/rna-transcription/.meta/example.cairo index 400715bb..1325855a 100644 --- a/exercises/practice/rna-transcription/.meta/example.cairo +++ b/exercises/practice/rna-transcription/.meta/example.cairo @@ -14,7 +14,7 @@ pub fn to_rna(dna: ByteArray) -> ByteArray { rna += "U"; } i += 1; - }; + } rna } diff --git a/exercises/practice/rna-transcription/Scarb.toml b/exercises/practice/rna-transcription/Scarb.toml index a3116ad1..c5767041 100644 --- a/exercises/practice/rna-transcription/Scarb.toml +++ b/exercises/practice/rna-transcription/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/robot-simulator/.meta/example.cairo b/exercises/practice/robot-simulator/.meta/example.cairo index 3cc3270e..8fc48eef 100644 --- a/exercises/practice/robot-simulator/.meta/example.cairo +++ b/exercises/practice/robot-simulator/.meta/example.cairo @@ -87,7 +87,7 @@ pub impl RobotImpl of RobotTrait { while let Option::Some(instruction) = instructions.at(i) { robot = robot.execute(instruction.into()); i += 1; - }; + } robot } diff --git a/exercises/practice/robot-simulator/Scarb.toml b/exercises/practice/robot-simulator/Scarb.toml index 09bf4686..6604b19b 100644 --- a/exercises/practice/robot-simulator/Scarb.toml +++ b/exercises/practice/robot-simulator/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/roman-numerals/.meta/example.cairo b/exercises/practice/roman-numerals/.meta/example.cairo index 5055bdf8..abac56dc 100644 --- a/exercises/practice/roman-numerals/.meta/example.cairo +++ b/exercises/practice/roman-numerals/.meta/example.cairo @@ -11,19 +11,8 @@ impl U32IntoRoman of Into { // it will soon be possible to use constant array variables // for now we have to define them within the function let mut roman_map: Span<(u32, ByteArray)> = array![ - (1000, "M"), - (900, "CM"), - (500, "D"), - (400, "CD"), - (100, "C"), - (90, "XC"), - (50, "L"), - (40, "XL"), - (10, "X"), - (9, "IX"), - (5, "V"), - (4, "IV"), - (1, "I"), + (1000, "M"), (900, "CM"), (500, "D"), (400, "CD"), (100, "C"), (90, "XC"), (50, "L"), + (40, "XL"), (10, "X"), (9, "IX"), (5, "V"), (4, "IV"), (1, "I"), ] .span(); @@ -35,7 +24,7 @@ impl U32IntoRoman of Into { value.append(roman_string); current_num -= *numeric; } - }; + } Roman { value } } diff --git a/exercises/practice/roman-numerals/Scarb.toml b/exercises/practice/roman-numerals/Scarb.toml index e1d506f5..17f70fe9 100644 --- a/exercises/practice/roman-numerals/Scarb.toml +++ b/exercises/practice/roman-numerals/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/rotational-cipher/.meta/example.cairo b/exercises/practice/rotational-cipher/.meta/example.cairo index 95ae634e..7b204c57 100644 --- a/exercises/practice/rotational-cipher/.meta/example.cairo +++ b/exercises/practice/rotational-cipher/.meta/example.cairo @@ -17,7 +17,7 @@ pub fn rotate(text: ByteArray, shift_key: u8) -> ByteArray { } result.append_byte(encoded); i += 1; - }; + } result } diff --git a/exercises/practice/rotational-cipher/Scarb.toml b/exercises/practice/rotational-cipher/Scarb.toml index 00dc3cd5..d861d79a 100644 --- a/exercises/practice/rotational-cipher/Scarb.toml +++ b/exercises/practice/rotational-cipher/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/scrabble-score/.meta/example.cairo b/exercises/practice/scrabble-score/.meta/example.cairo index 143b415c..75ed02d2 100644 --- a/exercises/practice/scrabble-score/.meta/example.cairo +++ b/exercises/practice/scrabble-score/.meta/example.cairo @@ -7,7 +7,7 @@ pub fn score(word: ByteArray) -> u16 { while let Option::Some(char) = word.at(i) { score += values.get(lowercase(char).into()); i += 1; - }; + } score } diff --git a/exercises/practice/scrabble-score/Scarb.toml b/exercises/practice/scrabble-score/Scarb.toml index 36c1000d..421a0710 100644 --- a/exercises/practice/scrabble-score/Scarb.toml +++ b/exercises/practice/scrabble-score/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/secret-handshake/.meta/example.cairo b/exercises/practice/secret-handshake/.meta/example.cairo index fdfc2e9e..72d24890 100644 --- a/exercises/practice/secret-handshake/.meta/example.cairo +++ b/exercises/practice/secret-handshake/.meta/example.cairo @@ -9,7 +9,7 @@ pub fn commands(number: u8) -> Array { results.append(action); } i += 1; - }; + } if number & 16 != 0 { let mut reversed: Array = array![]; @@ -17,7 +17,7 @@ pub fn commands(number: u8) -> Array { while i > 0 { i -= 1; reversed.append(results[i].clone()); - }; + } results = reversed; } diff --git a/exercises/practice/secret-handshake/Scarb.toml b/exercises/practice/secret-handshake/Scarb.toml index 0d7dae68..59158f2f 100644 --- a/exercises/practice/secret-handshake/Scarb.toml +++ b/exercises/practice/secret-handshake/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/semi-structured-logs/Scarb.toml b/exercises/practice/semi-structured-logs/Scarb.toml index 69f8ab7b..53a89002 100644 --- a/exercises/practice/semi-structured-logs/Scarb.toml +++ b/exercises/practice/semi-structured-logs/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/semi-structured-logs/tests/semi_structured_logs.cairo b/exercises/practice/semi-structured-logs/tests/semi_structured_logs.cairo index f888db82..cc63c540 100644 --- a/exercises/practice/semi-structured-logs/tests/semi_structured_logs.cairo +++ b/exercises/practice/semi-structured-logs/tests/semi_structured_logs.cairo @@ -1,4 +1,4 @@ -use semi_structured_logs::{error, info, log, warn, LogLevel}; +use semi_structured_logs::{LogLevel, error, info, log, warn}; #[test] fn emits_info() { diff --git a/exercises/practice/series/.meta/example.cairo b/exercises/practice/series/.meta/example.cairo index 413992ed..60eaf806 100644 --- a/exercises/practice/series/.meta/example.cairo +++ b/exercises/practice/series/.meta/example.cairo @@ -10,9 +10,9 @@ pub fn slices(series: ByteArray, slice_length: usize) -> Array { let mut slice = ""; for j in i..(i + slice_length) { slice.append_byte(series[j]); - }; + } all_slices.append(slice); - }; + } all_slices } diff --git a/exercises/practice/series/Scarb.toml b/exercises/practice/series/Scarb.toml index 0a6a3abe..ebd52727 100644 --- a/exercises/practice/series/Scarb.toml +++ b/exercises/practice/series/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/simple-linked-list/.meta/example.cairo b/exercises/practice/simple-linked-list/.meta/example.cairo index 919fc1fd..2da5a327 100644 --- a/exercises/practice/simple-linked-list/.meta/example.cairo +++ b/exercises/practice/simple-linked-list/.meta/example.cairo @@ -57,7 +57,7 @@ pub impl SimpleLinkedListImpl, +Copy> of SimpleLinkedListTrait let mut rev_list = SimpleLinkedListTrait::new(); while let Option::Some(data) = self.pop() { rev_list.push(data); - }; + } rev_list } } @@ -69,7 +69,7 @@ impl ArrayIntoSimpleLinkedList, +Copy> of Into, SimpleLi let mut list = SimpleLinkedListTrait::new(); while let Option::Some(data) = self.pop_front() { list.push(data); - }; + } list } } @@ -81,7 +81,7 @@ impl SimpleLinkedListIntoArray, +Copy> of Into = array![]; while let Option::Some(data) = reversed.pop() { arr.append(data); - }; + } arr } } diff --git a/exercises/practice/simple-linked-list/Scarb.toml b/exercises/practice/simple-linked-list/Scarb.toml index 706fb0f8..7e2e7323 100644 --- a/exercises/practice/simple-linked-list/Scarb.toml +++ b/exercises/practice/simple-linked-list/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/simple-linked-list/tests/simple_linked_list.cairo b/exercises/practice/simple-linked-list/tests/simple_linked_list.cairo index f4760491..9bfe2304 100644 --- a/exercises/practice/simple-linked-list/tests/simple_linked_list.cairo +++ b/exercises/practice/simple-linked-list/tests/simple_linked_list.cairo @@ -1,4 +1,4 @@ -use simple_linked_list::{SimpleLinkedListTrait, SimpleLinkedList}; +use simple_linked_list::{SimpleLinkedList, SimpleLinkedListTrait}; #[test] fn new_list_is_empty() { diff --git a/exercises/practice/space-age/Scarb.toml b/exercises/practice/space-age/Scarb.toml index 14c6a47d..af86fab9 100644 --- a/exercises/practice/space-age/Scarb.toml +++ b/exercises/practice/space-age/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/space-age/tests/space_age.cairo b/exercises/practice/space-age/tests/space_age.cairo index 0b2fb186..7bccff89 100644 --- a/exercises/practice/space-age/tests/space_age.cairo +++ b/exercises/practice/space-age/tests/space_age.cairo @@ -1,4 +1,4 @@ -use space_age::{Planet, Earth, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune}; +use space_age::{Earth, Jupiter, Mars, Mercury, Neptune, Planet, Saturn, Uranus, Venus}; fn assert_in_delta(expected: u256, actual: u256) { // absolute value of the difference diff --git a/exercises/practice/square-root/Scarb.toml b/exercises/practice/square-root/Scarb.toml index 78beadc3..590946f0 100644 --- a/exercises/practice/square-root/Scarb.toml +++ b/exercises/practice/square-root/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/sublist/Scarb.toml b/exercises/practice/sublist/Scarb.toml index c108bc2f..68a592e6 100644 --- a/exercises/practice/sublist/Scarb.toml +++ b/exercises/practice/sublist/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/sum-of-multiples/.meta/example.cairo b/exercises/practice/sum-of-multiples/.meta/example.cairo index 073deca6..c8993225 100644 --- a/exercises/practice/sum-of-multiples/.meta/example.cairo +++ b/exercises/practice/sum-of-multiples/.meta/example.cairo @@ -9,18 +9,18 @@ pub fn sum(limit: u32, factors: Array) -> u32 { while x < limit { if !contains(@multiples, x) { multiples.append(x); - }; + } multiplier += 1; x = f * multiplier; } } - }; + } let mut total_sum = 0; for m in multiples { total_sum += m; - }; + } total_sum } @@ -34,6 +34,6 @@ fn contains(arr: @Array, value: u32) -> bool { break; } i += 1; - }; + } result } diff --git a/exercises/practice/sum-of-multiples/Scarb.toml b/exercises/practice/sum-of-multiples/Scarb.toml index e78b03e5..f4939eec 100644 --- a/exercises/practice/sum-of-multiples/Scarb.toml +++ b/exercises/practice/sum-of-multiples/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/triangle/Scarb.toml b/exercises/practice/triangle/Scarb.toml index 400785a7..f6812cf3 100644 --- a/exercises/practice/triangle/Scarb.toml +++ b/exercises/practice/triangle/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/two-fer/Scarb.toml b/exercises/practice/two-fer/Scarb.toml index c30020c5..65fd5376 100644 --- a/exercises/practice/two-fer/Scarb.toml +++ b/exercises/practice/two-fer/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/variable-length-quantity/.meta/example.cairo b/exercises/practice/variable-length-quantity/.meta/example.cairo index ae063459..128ade08 100644 --- a/exercises/practice/variable-length-quantity/.meta/example.cairo +++ b/exercises/practice/variable-length-quantity/.meta/example.cairo @@ -24,11 +24,11 @@ pub fn encode(integers: Array) -> Array { } temp_result.append(tmp); - }; + } temp_result = reverse_array(temp_result); result.append_span(temp_result.span()); - }; + } result } @@ -49,7 +49,7 @@ pub fn decode(integers: Array) -> Array { assert!(i + 1 != size, "incomplete sequence"); } i += 1; - }; + } res } @@ -61,7 +61,7 @@ fn reverse_array(arr: Array) -> Array { while i > 0 { i -= 1; reversed.append(*arr[i]); - }; + } reversed } diff --git a/exercises/practice/variable-length-quantity/Scarb.toml b/exercises/practice/variable-length-quantity/Scarb.toml index 72c972d4..15a3b869 100644 --- a/exercises/practice/variable-length-quantity/Scarb.toml +++ b/exercises/practice/variable-length-quantity/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/word-count/.meta/example.cairo b/exercises/practice/word-count/.meta/example.cairo index 4712f0fa..c7e7def1 100644 --- a/exercises/practice/word-count/.meta/example.cairo +++ b/exercises/practice/word-count/.meta/example.cairo @@ -25,7 +25,7 @@ pub fn count_words(phrase: ByteArray) -> Span { break; } j += 1; - }; + } if !found { let word_and_count = WordResult { word: words[i].clone(), count: 1 }; @@ -33,7 +33,7 @@ pub fn count_words(phrase: ByteArray) -> Span { } i += 1; - }; + } results.span() } @@ -47,7 +47,7 @@ fn remove_index_from_array(arr: Array, index: u32) -> Array Array { } i += 1; - }; + } if current_word.len() > 0 { words.append(current_word); diff --git a/exercises/practice/word-count/Scarb.toml b/exercises/practice/word-count/Scarb.toml index 8645a336..c05ef1d7 100644 --- a/exercises/practice/word-count/Scarb.toml +++ b/exercises/practice/word-count/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/word-count/tests/word_count.cairo b/exercises/practice/word-count/tests/word_count.cairo index ada6a514..b45f681c 100644 --- a/exercises/practice/word-count/tests/word_count.cairo +++ b/exercises/practice/word-count/tests/word_count.cairo @@ -1,4 +1,4 @@ -use word_count::{count_words, WordResult}; +use word_count::{WordResult, count_words}; #[test] fn count_one_word() { @@ -16,8 +16,7 @@ fn count_one_of_each_word() { let mut output = count_words(input); let expected = array![ - WordResult { word: "of", count: 1 }, - WordResult { word: "each", count: 1 }, + WordResult { word: "of", count: 1 }, WordResult { word: "each", count: 1 }, WordResult { word: "one", count: 1 }, ] .span(); @@ -31,10 +30,8 @@ fn multiple_occurrences_of_a_word() { let mut output = count_words(input); let expected = array![ - WordResult { word: "one", count: 1 }, - WordResult { word: "two", count: 1 }, - WordResult { word: "red", count: 1 }, - WordResult { word: "blue", count: 1 }, + WordResult { word: "one", count: 1 }, WordResult { word: "two", count: 1 }, + WordResult { word: "red", count: 1 }, WordResult { word: "blue", count: 1 }, WordResult { word: "fish", count: 4 }, ] .span(); @@ -48,8 +45,7 @@ fn handles_cramped_lists() { let mut output = count_words(input); let expected = array![ - WordResult { word: "one", count: 1 }, - WordResult { word: "two", count: 1 }, + WordResult { word: "one", count: 1 }, WordResult { word: "two", count: 1 }, WordResult { word: "three", count: 1 }, ] .span(); @@ -63,8 +59,7 @@ fn handles_expanded_lists() { let mut output = count_words(input); let expected = array![ - WordResult { word: "one", count: 1 }, - WordResult { word: "two", count: 1 }, + WordResult { word: "one", count: 1 }, WordResult { word: "two", count: 1 }, WordResult { word: "three", count: 1 }, ] .span(); @@ -78,10 +73,8 @@ fn ignore_punctuation() { let mut output = count_words(input); let expected = array![ - WordResult { word: "car", count: 1 }, - WordResult { word: "carpet", count: 1 }, - WordResult { word: "as", count: 1 }, - WordResult { word: "java", count: 1 }, + WordResult { word: "car", count: 1 }, WordResult { word: "carpet", count: 1 }, + WordResult { word: "as", count: 1 }, WordResult { word: "java", count: 1 }, WordResult { word: "javascript", count: 1 }, ] .span(); @@ -95,8 +88,7 @@ fn include_numbers() { let mut output = count_words(input); let expected = array![ - WordResult { word: "testing", count: 2 }, - WordResult { word: "1", count: 1 }, + WordResult { word: "testing", count: 2 }, WordResult { word: "1", count: 1 }, WordResult { word: "2", count: 1 }, ] .span(); @@ -124,14 +116,10 @@ fn with_apostrophes() { let mut output = count_words(input); let expected = array![ - WordResult { word: "first", count: 1 }, - WordResult { word: "laugh", count: 1 }, - WordResult { word: "then", count: 1 }, - WordResult { word: "don't", count: 2 }, - WordResult { word: "cry", count: 1 }, - WordResult { word: "you're", count: 1 }, - WordResult { word: "getting", count: 1 }, - WordResult { word: "it", count: 1 }, + WordResult { word: "first", count: 1 }, WordResult { word: "laugh", count: 1 }, + WordResult { word: "then", count: 1 }, WordResult { word: "don't", count: 2 }, + WordResult { word: "cry", count: 1 }, WordResult { word: "you're", count: 1 }, + WordResult { word: "getting", count: 1 }, WordResult { word: "it", count: 1 }, ] .span(); assert_unordered_eq(output, expected); @@ -144,12 +132,9 @@ fn with_quotations() { let mut output = count_words(input); let expected = array![ - WordResult { word: "joe", count: 1 }, - WordResult { word: "can't", count: 1 }, - WordResult { word: "tell", count: 1 }, - WordResult { word: "between", count: 1 }, - WordResult { word: "and", count: 1 }, - WordResult { word: "large", count: 2 }, + WordResult { word: "joe", count: 1 }, WordResult { word: "can't", count: 1 }, + WordResult { word: "tell", count: 1 }, WordResult { word: "between", count: 1 }, + WordResult { word: "and", count: 1 }, WordResult { word: "large", count: 2 }, ] .span(); assert_unordered_eq(output, expected); @@ -162,14 +147,10 @@ fn substrings_from_the_beginning() { let mut output = count_words(input); let expected = array![ - WordResult { word: "joe", count: 1 }, - WordResult { word: "can't", count: 1 }, - WordResult { word: "tell", count: 1 }, - WordResult { word: "between", count: 1 }, - WordResult { word: "app", count: 1 }, - WordResult { word: "apple", count: 1 }, - WordResult { word: "and", count: 1 }, - WordResult { word: "a", count: 1 }, + WordResult { word: "joe", count: 1 }, WordResult { word: "can't", count: 1 }, + WordResult { word: "tell", count: 1 }, WordResult { word: "between", count: 1 }, + WordResult { word: "app", count: 1 }, WordResult { word: "apple", count: 1 }, + WordResult { word: "and", count: 1 }, WordResult { word: "a", count: 1 }, ] .span(); assert_unordered_eq(output, expected); @@ -195,8 +176,7 @@ fn alternating_word_separators_not_detected_as_a_word() { let mut output = count_words(input); let expected = array![ - WordResult { word: "one", count: 1 }, - WordResult { word: "two", count: 1 }, + WordResult { word: "one", count: 1 }, WordResult { word: "two", count: 1 }, WordResult { word: "three", count: 1 }, ] .span(); @@ -227,14 +207,14 @@ fn assert_unordered_eq(span1: Span, span2: Span) { found = true; break; } - }; + } assert!( found, "assertion failed: `(left == right)`\n left: `{:?}`,\n right `{:?}`", span1, span2, ); - }; + } // and `span2` should be subset of `span1` for item in span2 { let mut found = false; @@ -243,7 +223,7 @@ fn assert_unordered_eq(span1: Span, span2: Span) { found = true; break; } - }; + } assert!( found, "assertion failed: `(left == right)`\n left: `{:?}`,\n right `{:?}`", diff --git a/exercises/practice/word-search/.meta/example.cairo b/exercises/practice/word-search/.meta/example.cairo index 5528f12d..7f103d29 100644 --- a/exercises/practice/word-search/.meta/example.cairo +++ b/exercises/practice/word-search/.meta/example.cairo @@ -125,7 +125,7 @@ pub fn search(grid: Span, words_to_search_for: Span) -> Sp } } } - }; + } results.span() } @@ -146,7 +146,7 @@ fn is_horizontal_match(grid: Span, word: @ByteArray, row: usize, col: result = false; break; } - }; + } result } @@ -166,7 +166,7 @@ fn is_horizontal_reverse_match( result = false; break; } - }; + } result } @@ -183,7 +183,7 @@ fn is_vertical_match(grid: Span, word: @ByteArray, row: usize, col: u result = false; break; } - }; + } result } @@ -202,7 +202,7 @@ fn is_vertical_reverse_match( result = false; break; } - }; + } result } @@ -221,7 +221,7 @@ fn is_diagonal_tl_br_match( result = false; break; } - }; + } result } @@ -242,7 +242,7 @@ fn is_diagonal_tr_bl_match( result = false; break; } - }; + } result } @@ -264,7 +264,7 @@ fn is_diagonal_bl_tr_match( result = false; break; } - }; + } result } @@ -284,7 +284,7 @@ fn is_diagonal_br_tl_match( result = false; break; } - }; + } result } diff --git a/exercises/practice/word-search/Scarb.toml b/exercises/practice/word-search/Scarb.toml index 5aa51779..6c2aa67d 100644 --- a/exercises/practice/word-search/Scarb.toml +++ b/exercises/practice/word-search/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/word-search/tests/word_search.cairo b/exercises/practice/word-search/tests/word_search.cairo index be2e460f..eb1bb6ae 100644 --- a/exercises/practice/word-search/tests/word_search.cairo +++ b/exercises/practice/word-search/tests/word_search.cairo @@ -1,4 +1,4 @@ -use word_search::{search, SearchResult, Position}; +use word_search::{Position, SearchResult, search}; #[test] fn should_accept_an_initial_game_grid_and_a_target_search_word() { diff --git a/exercises/practice/wordy/.meta/example.cairo b/exercises/practice/wordy/.meta/example.cairo index 2840dd98..d37bd793 100644 --- a/exercises/practice/wordy/.meta/example.cairo +++ b/exercises/practice/wordy/.meta/example.cairo @@ -51,7 +51,7 @@ pub fn answer(question: ByteArray) -> i32 { }; i += 1; - }; + } result } @@ -79,7 +79,7 @@ fn split_question_into_words(question: ByteArray) -> Array { current_word.append_byte(char); } i += 1; - }; + } words } @@ -108,7 +108,7 @@ fn parse_int(num: @ByteArray) -> Option { break; }, } - }; + } if let Option::Some(val) = result { if (is_signed) { diff --git a/exercises/practice/wordy/Scarb.toml b/exercises/practice/wordy/Scarb.toml index a0c43120..63f2065c 100644 --- a/exercises/practice/wordy/Scarb.toml +++ b/exercises/practice/wordy/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/yacht/.meta/example.cairo b/exercises/practice/yacht/.meta/example.cairo index 468c16e3..ae892c0b 100644 --- a/exercises/practice/yacht/.meta/example.cairo +++ b/exercises/practice/yacht/.meta/example.cairo @@ -105,7 +105,7 @@ fn count_dice(dice: Span) -> Counter { 6 => counter.sixes += 1, _ => {}, } - }; + } counter } @@ -114,6 +114,6 @@ fn sum(dice: Span) -> u8 { let mut sum = 0; for num in dice { sum += *num; - }; + } sum } diff --git a/exercises/practice/yacht/Scarb.toml b/exercises/practice/yacht/Scarb.toml index a2d255b0..e03ab66b 100644 --- a/exercises/practice/yacht/Scarb.toml +++ b/exercises/practice/yacht/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0" diff --git a/exercises/practice/yacht/tests/yacht.cairo b/exercises/practice/yacht/tests/yacht.cairo index b2ea0e7c..fa9111c8 100644 --- a/exercises/practice/yacht/tests/yacht.cairo +++ b/exercises/practice/yacht/tests/yacht.cairo @@ -1,4 +1,4 @@ -use yacht::{score, Category}; +use yacht::{Category, score}; #[test] fn is_yacht() { diff --git a/exercises/practice/zipper/Scarb.toml b/exercises/practice/zipper/Scarb.toml index 64287484..68700d74 100644 --- a/exercises/practice/zipper/Scarb.toml +++ b/exercises/practice/zipper/Scarb.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024_07" [dev-dependencies] -cairo_test = "2.9.2" +cairo_test = "2.12.0"