From 26023a903cc22130f96a50e6e09d205c412615da Mon Sep 17 00:00:00 2001 From: Stefan Majewsky Date: Wed, 26 Nov 2025 17:40:56 +0100 Subject: add package is --- is/is_test.go | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 is/is_test.go (limited to 'is/is_test.go') diff --git a/is/is_test.go b/is/is_test.go new file mode 100644 index 0000000..3c6c7db --- /dev/null +++ b/is/is_test.go @@ -0,0 +1,61 @@ +// SPDX-FileCopyrightText: 2025 Stefan Majewsky +// SPDX-License-Identifier: Apache-2.0 + +package is_test + +import ( + "testing" + "time" + + . "github.com/majewsky/gg/internal/test" + "github.com/majewsky/gg/is" + . "github.com/majewsky/gg/option" +) + +func TestComparable(t *testing.T) { + AssertEqual(t, Some("foo").IsSomeAnd(is.EqualTo("foo")), true) + AssertEqual(t, Some("bar").IsSomeAnd(is.EqualTo("foo")), false) + + AssertEqual(t, Some("foo").IsSomeAnd(is.DifferentFrom("foo")), false) + AssertEqual(t, Some("bar").IsSomeAnd(is.DifferentFrom("foo")), true) +} + +func TestOrdered(t *testing.T) { + AssertEqual(t, Some(3).IsSomeAnd(is.Above(4)), false) + AssertEqual(t, Some(4).IsSomeAnd(is.Above(4)), false) + AssertEqual(t, Some(5).IsSomeAnd(is.Above(4)), true) + + AssertEqual(t, Some(3).IsSomeAnd(is.Below(4)), true) + AssertEqual(t, Some(4).IsSomeAnd(is.Below(4)), false) + AssertEqual(t, Some(5).IsSomeAnd(is.Below(4)), false) + + AssertEqual(t, Some(3).IsSomeAnd(is.NotAbove(4)), true) + AssertEqual(t, Some(4).IsSomeAnd(is.NotAbove(4)), true) + AssertEqual(t, Some(5).IsSomeAnd(is.NotAbove(4)), false) + + AssertEqual(t, Some(3).IsSomeAnd(is.NotBelow(4)), false) + AssertEqual(t, Some(4).IsSomeAnd(is.NotBelow(4)), true) + AssertEqual(t, Some(5).IsSomeAnd(is.NotBelow(4)), true) +} + +func TestTime(t *testing.T) { + t1 := time.Now() + t2 := t1.Add(time.Second) + t3 := t2.Add(time.Second) + + AssertEqual(t, Some(t1).IsSomeAnd(is.After(t2)), false) + AssertEqual(t, Some(t2).IsSomeAnd(is.After(t2)), false) + AssertEqual(t, Some(t3).IsSomeAnd(is.After(t2)), true) + + AssertEqual(t, Some(t1).IsSomeAnd(is.Before(t2)), true) + AssertEqual(t, Some(t2).IsSomeAnd(is.Before(t2)), false) + AssertEqual(t, Some(t3).IsSomeAnd(is.Before(t2)), false) + + AssertEqual(t, Some(t1).IsSomeAnd(is.NotAfter(t2)), true) + AssertEqual(t, Some(t2).IsSomeAnd(is.NotAfter(t2)), true) + AssertEqual(t, Some(t3).IsSomeAnd(is.NotAfter(t2)), false) + + AssertEqual(t, Some(t1).IsSomeAnd(is.NotBefore(t2)), false) + AssertEqual(t, Some(t2).IsSomeAnd(is.NotBefore(t2)), true) + AssertEqual(t, Some(t3).IsSomeAnd(is.NotBefore(t2)), true) +} -- cgit v1.2.3