mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-30 23:31:12 +00:00
Commented in some quick sort tests
This commit is contained in:
parent
8547b7de89
commit
d0587fa92c
1 changed files with 144 additions and 144 deletions
|
@ -1028,151 +1028,151 @@ mod gen_list {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// #[test]
|
#[test]
|
||||||
// fn foobar2() {
|
fn foobar2() {
|
||||||
// with_larger_debug_stack(|| {
|
with_larger_debug_stack(|| {
|
||||||
// assert_evals_to!(
|
assert_evals_to!(
|
||||||
// indoc!(
|
indoc!(
|
||||||
// r#"
|
r#"
|
||||||
// quicksort : List (Num a) -> List (Num a)
|
quicksort : List (Num a) -> List (Num a)
|
||||||
// quicksort = \list ->
|
quicksort = \list ->
|
||||||
// quicksortHelp list 0 (List.len list - 1)
|
quicksortHelp list 0 (List.len list - 1)
|
||||||
//
|
|
||||||
//
|
|
||||||
// quicksortHelp : List (Num a), Int, Int -> List (Num a)
|
quicksortHelp : List (Num a), Int, Int -> List (Num a)
|
||||||
// quicksortHelp = \list, low, high ->
|
quicksortHelp = \list, low, high ->
|
||||||
// if low < high then
|
if low < high then
|
||||||
// when partition low high list is
|
when partition low high list is
|
||||||
// Pair partitionIndex partitioned ->
|
Pair partitionIndex partitioned ->
|
||||||
// partitioned
|
partitioned
|
||||||
// |> quicksortHelp low (partitionIndex - 1)
|
|> quicksortHelp low (partitionIndex - 1)
|
||||||
// |> quicksortHelp (partitionIndex + 1) high
|
|> quicksortHelp (partitionIndex + 1) high
|
||||||
// else
|
else
|
||||||
// list
|
list
|
||||||
//
|
|
||||||
//
|
|
||||||
// swap : Int, Int, List a -> List a
|
swap : Int, Int, List a -> List a
|
||||||
// swap = \i, j, list ->
|
swap = \i, j, list ->
|
||||||
// when Pair (List.get list i) (List.get list j) is
|
when Pair (List.get list i) (List.get list j) is
|
||||||
// Pair (Ok atI) (Ok atJ) ->
|
Pair (Ok atI) (Ok atJ) ->
|
||||||
// list
|
list
|
||||||
// |> List.set i atJ
|
|> List.set i atJ
|
||||||
// |> List.set j atI
|
|> List.set j atI
|
||||||
//
|
|
||||||
// _ ->
|
_ ->
|
||||||
// []
|
[]
|
||||||
//
|
|
||||||
// partition : Int, Int, List (Num a) -> [ Pair Int (List (Num a)) ]
|
partition : Int, Int, List (Num a) -> [ Pair Int (List (Num a)) ]
|
||||||
// partition = \low, high, initialList ->
|
partition = \low, high, initialList ->
|
||||||
// when List.get initialList high is
|
when List.get initialList high is
|
||||||
// Ok pivot ->
|
Ok pivot ->
|
||||||
// when partitionHelp (low - 1) low initialList high pivot is
|
when partitionHelp (low - 1) low initialList high pivot is
|
||||||
// Pair newI newList ->
|
Pair newI newList ->
|
||||||
// Pair (newI + 1) (swap (newI + 1) high newList)
|
Pair (newI + 1) (swap (newI + 1) high newList)
|
||||||
//
|
|
||||||
// Err _ ->
|
Err _ ->
|
||||||
// Pair (low - 1) initialList
|
Pair (low - 1) initialList
|
||||||
//
|
|
||||||
//
|
|
||||||
// partitionHelp : Int, Int, List (Num a), Int, Int -> [ Pair Int (List (Num a)) ]
|
partitionHelp : Int, Int, List (Num a), Int, Int -> [ Pair Int (List (Num a)) ]
|
||||||
// partitionHelp = \i, j, list, high, pivot ->
|
partitionHelp = \i, j, list, high, pivot ->
|
||||||
// # if j < high then
|
# if j < high then
|
||||||
// if False then
|
if False then
|
||||||
// when List.get list j is
|
when List.get list j is
|
||||||
// Ok value ->
|
Ok value ->
|
||||||
// if value <= pivot then
|
if value <= pivot then
|
||||||
// partitionHelp (i + 1) (j + 1) (swap (i + 1) j list) high pivot
|
partitionHelp (i + 1) (j + 1) (swap (i + 1) j list) high pivot
|
||||||
// else
|
else
|
||||||
// partitionHelp i (j + 1) list high pivot
|
partitionHelp i (j + 1) list high pivot
|
||||||
//
|
|
||||||
// Err _ ->
|
Err _ ->
|
||||||
// Pair i list
|
Pair i list
|
||||||
// else
|
else
|
||||||
// Pair i list
|
Pair i list
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// quicksort [ 7, 4, 21, 19 ]
|
quicksort [ 7, 4, 21, 19 ]
|
||||||
// "#
|
"#
|
||||||
// ),
|
),
|
||||||
// &[19, 7, 4, 21],
|
&[19, 7, 4, 21],
|
||||||
// &'static [i64],
|
&'static [i64]
|
||||||
// );
|
);
|
||||||
// })
|
})
|
||||||
// }
|
}
|
||||||
|
|
||||||
// #[test]
|
#[test]
|
||||||
// fn foobar() {
|
fn foobar() {
|
||||||
// with_larger_debug_stack(|| {
|
with_larger_debug_stack(|| {
|
||||||
// assert_evals_to!(
|
assert_evals_to!(
|
||||||
// indoc!(
|
indoc!(
|
||||||
// r#"
|
r#"
|
||||||
// quicksort : List (Num a) -> List (Num a)
|
quicksort : List (Num a) -> List (Num a)
|
||||||
// quicksort = \list ->
|
quicksort = \list ->
|
||||||
// quicksortHelp list 0 (List.len list - 1)
|
quicksortHelp list 0 (List.len list - 1)
|
||||||
//
|
|
||||||
//
|
|
||||||
// quicksortHelp : List (Num a), Int, Int -> List (Num a)
|
quicksortHelp : List (Num a), Int, Int -> List (Num a)
|
||||||
// quicksortHelp = \list, low, high ->
|
quicksortHelp = \list, low, high ->
|
||||||
// if low < high then
|
if low < high then
|
||||||
// when partition low high list is
|
when partition low high list is
|
||||||
// Pair partitionIndex partitioned ->
|
Pair partitionIndex partitioned ->
|
||||||
// partitioned
|
partitioned
|
||||||
// |> quicksortHelp low (partitionIndex - 1)
|
|> quicksortHelp low (partitionIndex - 1)
|
||||||
// |> quicksortHelp (partitionIndex + 1) high
|
|> quicksortHelp (partitionIndex + 1) high
|
||||||
// else
|
else
|
||||||
// list
|
list
|
||||||
//
|
|
||||||
//
|
|
||||||
// swap : Int, Int, List a -> List a
|
swap : Int, Int, List a -> List a
|
||||||
// swap = \i, j, list ->
|
swap = \i, j, list ->
|
||||||
// when Pair (List.get list i) (List.get list j) is
|
when Pair (List.get list i) (List.get list j) is
|
||||||
// Pair (Ok atI) (Ok atJ) ->
|
Pair (Ok atI) (Ok atJ) ->
|
||||||
// list
|
list
|
||||||
// |> List.set i atJ
|
|> List.set i atJ
|
||||||
// |> List.set j atI
|
|> List.set j atI
|
||||||
//
|
|
||||||
// _ ->
|
_ ->
|
||||||
// []
|
[]
|
||||||
//
|
|
||||||
// partition : Int, Int, List (Num a) -> [ Pair Int (List (Num a)) ]
|
partition : Int, Int, List (Num a) -> [ Pair Int (List (Num a)) ]
|
||||||
// partition = \low, high, initialList ->
|
partition = \low, high, initialList ->
|
||||||
// when List.get initialList high is
|
when List.get initialList high is
|
||||||
// Ok pivot ->
|
Ok pivot ->
|
||||||
// when partitionHelp (low - 1) low initialList high pivot is
|
when partitionHelp (low - 1) low initialList high pivot is
|
||||||
// Pair newI newList ->
|
Pair newI newList ->
|
||||||
// Pair (newI + 1) (swap (newI + 1) high newList)
|
Pair (newI + 1) (swap (newI + 1) high newList)
|
||||||
//
|
|
||||||
// Err _ ->
|
Err _ ->
|
||||||
// Pair (low - 1) initialList
|
Pair (low - 1) initialList
|
||||||
//
|
|
||||||
//
|
|
||||||
// partitionHelp : Int, Int, List (Num a), Int, Int -> [ Pair Int (List (Num a)) ]
|
partitionHelp : Int, Int, List (Num a), Int, Int -> [ Pair Int (List (Num a)) ]
|
||||||
// partitionHelp = \i, j, list, high, pivot ->
|
partitionHelp = \i, j, list, high, pivot ->
|
||||||
// if j < high then
|
if j < high then
|
||||||
// when List.get list j is
|
when List.get list j is
|
||||||
// Ok value ->
|
Ok value ->
|
||||||
// if value <= pivot then
|
if value <= pivot then
|
||||||
// partitionHelp (i + 1) (j + 1) (swap (i + 1) j list) high pivot
|
partitionHelp (i + 1) (j + 1) (swap (i + 1) j list) high pivot
|
||||||
// else
|
else
|
||||||
// partitionHelp i (j + 1) list high pivot
|
partitionHelp i (j + 1) list high pivot
|
||||||
//
|
|
||||||
// Err _ ->
|
Err _ ->
|
||||||
// Pair i list
|
Pair i list
|
||||||
// else
|
else
|
||||||
// Pair i list
|
Pair i list
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// when List.first (quicksort [0x1]) is
|
when List.first (quicksort [0x1]) is
|
||||||
// _ -> 4
|
_ -> 4
|
||||||
// "#
|
"#
|
||||||
// ),
|
),
|
||||||
// 4,
|
4,
|
||||||
// i64,
|
i64
|
||||||
// );
|
);
|
||||||
// })
|
})
|
||||||
// }
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn empty_list_increment_decrement() {
|
fn empty_list_increment_decrement() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue