Skip to content

Commit d16ccf7

Browse files
committed
Add tests for derangements
1 parent fa90350 commit d16ccf7

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
@@ -68,6 +68,17 @@ end
6868
@test collect(multiset_permutations("", -1)) == Any[]
6969
@test length(multiset_permutations("aaaaaaaaaaaaaaaaaaaaab", 21)) == 22
7070

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

0 commit comments

Comments
 (0)