aboutsummaryrefslogtreecommitdiff
path: root/option/option_test.go
diff options
context:
space:
mode:
authorStefan Majewsky <majewsky@gmx.net>2025-01-11 12:23:31 +0100
committerStefan Majewsky <majewsky@gmx.net>2025-01-11 12:23:31 +0100
commit7eec3798588243c493791a421e6224680870d0e2 (patch)
treee6893f9c883c2e3d4d453ae3d54756b13c32e222 /option/option_test.go
parent49a7790edc4ec9526a7b846399339068990ce7de (diff)
downloadgo-gg-7eec3798588243c493791a421e6224680870d0e2.tar.gz
add options.IsNoneOrZero
Also, add the tests for IsSomeAnd and IsNoneOr that I forgot.
Diffstat (limited to 'option/option_test.go')
-rw-r--r--option/option_test.go21
1 files changed, 17 insertions, 4 deletions
diff --git a/option/option_test.go b/option/option_test.go
index 0fa255f..28e6d49 100644
--- a/option/option_test.go
+++ b/option/option_test.go
@@ -33,11 +33,12 @@ func TestAsSlice(t *testing.T) {
AssertEqual(t, Some(42).AsSlice(), []int{42})
}
-func TestFilter(t *testing.T) {
- isEven := func(x int) bool {
- return x%2 == 0
- }
+func isEven(x int) bool {
+ // an example predicate for testing the various functions that take predicates
+ return x%2 == 0
+}
+func TestFilter(t *testing.T) {
AssertEqual(t, None[int]().Filter(isEven), None[int]())
AssertEqual(t, Some(41).Filter(isEven), None[int]())
AssertEqual(t, Some(42).Filter(isEven), Some(42))
@@ -48,11 +49,23 @@ func TestIsNone(t *testing.T) {
AssertEqual(t, Some(42).IsNone(), false)
}
+func TestIsNoneOr(t *testing.T) {
+ AssertEqual(t, None[int]().IsNoneOr(isEven), true)
+ AssertEqual(t, Some(41).IsNoneOr(isEven), false)
+ AssertEqual(t, Some(42).IsNoneOr(isEven), true)
+}
+
func TestIsSome(t *testing.T) {
AssertEqual(t, None[int]().IsSome(), false)
AssertEqual(t, Some(42).IsSome(), true)
}
+func TestIsSomeAnd(t *testing.T) {
+ AssertEqual(t, None[int]().IsSomeAnd(isEven), false)
+ AssertEqual(t, Some(41).IsSomeAnd(isEven), false)
+ AssertEqual(t, Some(42).IsSomeAnd(isEven), true)
+}
+
func TestIsZero(t *testing.T) {
AssertEqual(t, None[int]().IsZero(), true)
AssertEqual(t, Some(42).IsZero(), false)