From 7e539a7d649d8e400bdaad8392fa1d6c07486376 Mon Sep 17 00:00:00 2001 From: Stefan Majewsky Date: Thu, 24 Apr 2025 10:56:48 +0200 Subject: add options.Max(), options.Min() --- options/options_test.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'options/options_test.go') diff --git a/options/options_test.go b/options/options_test.go index caeb303..84a61da 100644 --- a/options/options_test.go +++ b/options/options_test.go @@ -29,3 +29,43 @@ func TestMap(t *testing.T) { AssertEqual(t, Map(None[int](), strconv.Itoa), None[string]()) AssertEqual(t, Map(Some(42), strconv.Itoa), Some("42")) } + +func TestMax(t *testing.T) { + AssertEqual(t, Max[int](), None[int]()) + AssertEqual(t, Max(None[int]()), None[int]()) + AssertEqual(t, Max(None[int](), None[int]()), None[int]()) + + AssertEqual(t, Max(Some(5)), Some(5)) + AssertEqual(t, Max(Some(5), None[int]()), Some(5)) + AssertEqual(t, Max(None[int](), Some(5)), Some(5)) + + AssertEqual(t, Max(Some(5), Some(23)), Some(23)) + AssertEqual(t, Max(None[int](), Some(5), Some(23)), Some(23)) + AssertEqual(t, Max(Some(5), None[int](), Some(23)), Some(23)) + AssertEqual(t, Max(Some(5), Some(23), None[int]()), Some(23)) + + AssertEqual(t, Max(Some(23), Some(5)), Some(23)) + AssertEqual(t, Max(None[int](), Some(23), Some(5)), Some(23)) + AssertEqual(t, Max(Some(23), None[int](), Some(5)), Some(23)) + AssertEqual(t, Max(Some(23), Some(5), None[int]()), Some(23)) +} + +func TestMin(t *testing.T) { + AssertEqual(t, Min[int](), None[int]()) + AssertEqual(t, Min(None[int]()), None[int]()) + AssertEqual(t, Min(None[int](), None[int]()), None[int]()) + + AssertEqual(t, Min(Some(5)), Some(5)) + AssertEqual(t, Min(Some(5), None[int]()), Some(5)) + AssertEqual(t, Min(None[int](), Some(5)), Some(5)) + + AssertEqual(t, Min(Some(5), Some(23)), Some(5)) + AssertEqual(t, Min(None[int](), Some(5), Some(23)), Some(5)) + AssertEqual(t, Min(Some(5), None[int](), Some(23)), Some(5)) + AssertEqual(t, Min(Some(5), Some(23), None[int]()), Some(5)) + + AssertEqual(t, Min(Some(23), Some(5)), Some(5)) + AssertEqual(t, Min(None[int](), Some(23), Some(5)), Some(5)) + AssertEqual(t, Min(Some(23), None[int](), Some(5)), Some(5)) + AssertEqual(t, Min(Some(23), Some(5), None[int]()), Some(5)) +} -- cgit v1.2.3