forked from ProAlgos/ProAlgos-Cpp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathall_permutations.cpp
More file actions
29 lines (24 loc) · 1005 Bytes
/
all_permutations.cpp
File metadata and controls
29 lines (24 loc) · 1005 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "third_party/catch.hpp"
#include "algorithm/backtracking/all_permutations.hpp"
TEST_CASE("Base cases","[backtracking][all_permutations]"){
string s =""; // empty string
vector<string> permutations = {""};
REQUIRE(all_permutations(s,0,s.length()-1) == permutations);
s = "a";
permutations = {"a"};
REQUIRE(all_permutations(s,0,s.length()-1) == permutations);
s = " ";
permutations = {" "};
REQUIRE(all_permutations(s,0,s.length()-1) == permutations);
}
TEST_CASE("Normal cases",[backtracking][all_permutations]"){
string s = "abc";
vector<string> permutations = {"abc","acb","bac","bca","cab","cba"};
REQUIRE(all_permutations(s,0,s.length()-1) == permutations);
s = "abcd";
permutations ={"abcd","abdc","acbd","acdb","adcb","adbc",
"bacd","badc","bcad","bcda","bdca","bdac",
"cbad","cbda","cabd","cadb","cdab","cdba",
"dbca","dbac","dcba","dcab","dacb","dabc" };
REQUIRE(all_permutations(s,0,s.length()-1) == permutations);
}