From 0c3ee0ba66e4e7e0be6d652236240d74304f5e54 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Fri, 20 Oct 2017 10:29:39 +0900 Subject: Add `Array#{permutation,combination}. --- mrbgems/mruby-array-ext/test/array.rb | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'mrbgems/mruby-array-ext/test') diff --git a/mrbgems/mruby-array-ext/test/array.rb b/mrbgems/mruby-array-ext/test/array.rb index c0db1b1cc..bf96b885e 100644 --- a/mrbgems/mruby-array-ext/test/array.rb +++ b/mrbgems/mruby-array-ext/test/array.rb @@ -381,3 +381,31 @@ assert("Array#slice!") do assert_equal(i, [1, 2, 3]) assert_equal(j, nil) end + +assert("Array#permutation") do + a = [1, 2, 3] + assert_equal([[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]], + a.permutation.to_a) + assert_equal([[1],[2],[3]], + a.permutation(1).to_a) + assert_equal([[1,2],[1,3],[2,1],[2,3],[3,1],[3,2]], + a.permutation(2).to_a) + assert_equal([[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]], + a.permutation(3).to_a) + assert_equal([[]], a.permutation(0).to_a) + assert_equal([], a.permutation(4).to_a) +end + +assert("Array#combination") do + a = [1, 2, 3, 4] + assert_equal([[1],[2],[3],[4]], + a.combination(1).to_a) + assert_equal([[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]], + a.combination(2).to_a) + assert_equal([[1,2,3],[1,2,4],[1,3,4],[2,3,4]], + a.combination(3).to_a) + assert_equal([[1,2,3,4]], + a.combination(4).to_a) + assert_equal([[]], a.combination(0).to_a) + assert_equal([], a.combination(5).to_a) +end -- cgit v1.2.3