|
5 | 5 | cocktail_shaker_sort, quick_sort, longest_common_subsequence, is_ordered,
|
6 | 6 | upper_bound, lower_bound, longest_increasing_subsequence, next_permutation,
|
7 | 7 | prev_permutation, bubble_sort, linear_search, binary_search, jump_search,
|
8 |
| - selection_sort, insertion_sort, intro_sort, Backend) |
| 8 | + selection_sort, insertion_sort, intro_sort, longest_alternating_subsequence, Backend) |
9 | 9 |
|
10 | 10 | from pydatastructs.utils.raises_util import raises
|
11 | 11 | import random
|
@@ -414,3 +414,32 @@ def test_binary_search():
|
414 | 414 | def test_jump_search():
|
415 | 415 | _test_common_search(jump_search)
|
416 | 416 | _test_common_search(jump_search, backend=Backend.CPP)
|
| 417 | + |
| 418 | + |
| 419 | +def test_longest_alternating_subsequence(): |
| 420 | + ODA = OneDimensionalArray |
| 421 | + |
| 422 | + arr1 = ODA(int, [-4, 3, -5, 9, 10, 12, 2, -1]) |
| 423 | + output: OneDimensionalArray = longest_alternating_subsequence(arr1) |
| 424 | + expected_result = [3, -5, 9, 2, -1] |
| 425 | + assert len(expected_result) == output |
| 426 | + |
| 427 | + arr2 = ODA(int, [10, 22, 9, 33, 49, 50, 31, 60]) |
| 428 | + output: OneDimensionalArray = longest_alternating_subsequence(arr2) |
| 429 | + expected_result = [10, 22, 9, 33, 31, 60] |
| 430 | + assert len(expected_result) == output |
| 431 | + |
| 432 | + arr3 = ODA(int, [1, 2, 3, 4, 5, 6, 7, 8, 9]) |
| 433 | + output: OneDimensionalArray = longest_alternating_subsequence(arr3) |
| 434 | + expected_result = [1, 2] |
| 435 | + assert len(expected_result) == output |
| 436 | + |
| 437 | + arr4 = ODA(int, [9, 8, 7, 6, 5, 4, 3, 2, 1]) |
| 438 | + output: OneDimensionalArray = longest_alternating_subsequence(arr4) |
| 439 | + expected_result = [9, 8] |
| 440 | + assert len(expected_result) == output |
| 441 | + |
| 442 | + arr5 = ODA(int, [1, 5, 4, 3, 2, 1, 6, 7, 8, 9]) |
| 443 | + output: OneDimensionalArray = longest_alternating_subsequence(arr5) |
| 444 | + expected_result = [1, 5, 4, 6] |
| 445 | + assert len(expected_result) == output |
0 commit comments