From 37279f753cb241016be2d3e25a0fa665072b643c Mon Sep 17 00:00:00 2001 From: Sebastian Porto Date: Sat, 24 Apr 2021 20:36:42 +1000 Subject: Add list.combinations --- test/gleam/list_test.gleam | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'test') diff --git a/test/gleam/list_test.gleam b/test/gleam/list_test.gleam index 5fe2dd5..294c9f4 100644 --- a/test/gleam/list_test.gleam +++ b/test/gleam/list_test.gleam @@ -653,3 +653,44 @@ pub fn last_test() { list.last([1, 2, 3, 4, 5]) |> should.equal(Ok(5)) } + +pub fn combinations_by_test() { + list.combinations_by([1, 2, 3], 0) + |> should.equal([[]]) + + list.combinations_by([1, 2, 3], 1) + |> should.equal([[1], [2], [3]]) + + list.combinations_by([1, 2, 3], 2) + |> should.equal([[1, 2], [1, 3], [2, 3]]) + + list.combinations_by([1, 2, 3], 3) + |> should.equal([[1, 2, 3]]) + + list.combinations_by([1, 2, 3], 4) + |> should.equal([]) + + list.combinations_by([1, 2, 3, 4], 3) + |> should.equal([[1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4]]) +} + +pub fn combinations_by_2_test() { + list.combinations_by_2([1]) + |> should.equal([]) + + list.combinations_by_2([1, 2]) + |> should.equal([tuple(1, 2)]) + + list.combinations_by_2([1, 2, 3]) + |> should.equal([tuple(1, 2), tuple(1, 3), tuple(2, 3)]) + + list.combinations_by_2([1, 2, 3, 4]) + |> should.equal([ + tuple(1, 2), + tuple(1, 3), + tuple(1, 4), + tuple(2, 3), + tuple(2, 4), + tuple(3, 4), + ]) +} -- cgit v1.2.3