Skip to content
Snippets Groups Projects

Draft: Add missing subroutines from libgridman

Open Yen-Chen Chen requested to merge support_gridman into master
+ 14
1
@@ -62,11 +62,24 @@ CONTAINS
INTEGER :: to_sort(6) = (/144, 58, 4, 7, 10, 11/)
CALL TAG_TEST("TEST_insertion_sort_int_1")
CALL ASSERT_EQUAL(is_sorted_int(to_sort), .FALSE.)
CALL quicksort(to_sort)
CALL insertion_sort(to_sort)
CALL TAG_TEST("TEST_insertion_sort_int_2")
CALL ASSERT_EQUAL(is_sorted_int(to_sort), .TRUE.)
END SUBROUTINE
SUBROUTINE TEST_insertion_sort_permutation_int
USE mo_util_sort
INTEGER :: to_sort(6) = (/144, 58, 4, 7, 10, 11/)
INTEGER :: idx_permutation(6) = (/1, 2, 3, 4, 5, 6/)
CALL TAG_TEST("TEST_insertion_sort_permutation_int_1")
CALL ASSERT_EQUAL(is_sorted_int(to_sort), .FALSE.)
CALL insertion_sort(to_sort, idx_permutation)
CALL TAG_TEST("TEST_insertion_sort_permutation_int_2")
CALL ASSERT_EQUAL(is_sorted_int(to_sort), .TRUE.)
CALL TAG_TEST("TEST_insertion_sort_permutation_int_3")
CALL ASSERT_EQUAL(has_same_values_int(idx_permutation, (/3, 4, 5, 6, 2, 1/)), .TRUE.)
END SUBROUTINE
LOGICAL FUNCTION has_same_values_int(array, ref)
INTEGER, INTENT(IN) :: array(:), ref(:)
INTEGER :: i
Loading