Skip to content

Commit a42609c

Browse files
committed
Add tests for derangements
1 parent 7a54fe5 commit a42609c

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

test/permutations.jl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,17 @@ end
6666
@test collect(multiset_permutations("", -1)) == Any[]
6767
@test length(multiset_permutations("aaaaaaaaaaaaaaaaaaaaab", 21)) == 22
6868

69+
# derangements
70+
@test length(collect(derangements(1:4))) == 9
71+
@test length(collect(derangements(1:8))) == derangement(8) == 14833
72+
@test collect(derangements(Int[])) == [Int[]]
73+
@test collect(derangements([1])) == Vector{Int}[]
74+
@test collect(derangements([1, 1])) == Vector{Int}[]
75+
@test collect(derangements([1, 1, 2])) == Vector{Int}[]
76+
@test collect(derangements([1, 1, 2, 2])) == [[2, 2, 1, 1]]
77+
@test map(join, derangements("aabbc")) == ["bbaca", "bbcaa", "bcaab", "cbaab"]
78+
@test map(join, derangements("aaabbbc")) == ["bbbaaca", "bbbacaa", "bbbcaaa", "bbcaaab", "bcbaaab", "cbbaaab"]
79+
6980
#nthperm!
7081
for n = 0:7, k = 1:factorial(n)
7182
p = nthperm!([1:n;], k)

0 commit comments

Comments
 (0)