aboutsummaryrefslogtreecommitdiff
path: root/is/is_test.go
diff options
context:
space:
mode:
authorStefan Majewsky <majewsky@gmx.net>2025-11-26 17:40:56 +0100
committerStefan Majewsky <majewsky@gmx.net>2025-11-26 17:54:09 +0100
commit26023a903cc22130f96a50e6e09d205c412615da (patch)
tree1d4bf882a78978d6edb1f3b1f60d1f1f04b4e085 /is/is_test.go
parent3f447c28466911e234d421eb7e3310e14c30dfa9 (diff)
downloadgo-gg-26023a903cc22130f96a50e6e09d205c412615da.tar.gz
add package is
Diffstat (limited to 'is/is_test.go')
-rw-r--r--is/is_test.go61
1 files changed, 61 insertions, 0 deletions
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 <majewsky@gmx.net>
+// 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)
+}