aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/onsi/gomega/matchers/be_numerically_matcher_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/onsi/gomega/matchers/be_numerically_matcher_test.go')
-rw-r--r--vendor/github.com/onsi/gomega/matchers/be_numerically_matcher_test.go148
1 files changed, 148 insertions, 0 deletions
diff --git a/vendor/github.com/onsi/gomega/matchers/be_numerically_matcher_test.go b/vendor/github.com/onsi/gomega/matchers/be_numerically_matcher_test.go
new file mode 100644
index 0000000..43fdb1f
--- /dev/null
+++ b/vendor/github.com/onsi/gomega/matchers/be_numerically_matcher_test.go
@@ -0,0 +1,148 @@
+package matchers_test
+
+import (
+ . "github.com/onsi/ginkgo"
+ . "github.com/onsi/gomega"
+ . "github.com/onsi/gomega/matchers"
+)
+
+var _ = Describe("BeNumerically", func() {
+ Context("when passed a number", func() {
+ It("should support ==", func() {
+ Ω(uint32(5)).Should(BeNumerically("==", 5))
+ Ω(float64(5.0)).Should(BeNumerically("==", 5))
+ Ω(int8(5)).Should(BeNumerically("==", 5))
+ })
+
+ It("should not have false positives", func() {
+ Ω(5.1).ShouldNot(BeNumerically("==", 5))
+ Ω(5).ShouldNot(BeNumerically("==", 5.1))
+ })
+
+ It("should support >", func() {
+ Ω(uint32(5)).Should(BeNumerically(">", 4))
+ Ω(float64(5.0)).Should(BeNumerically(">", 4.9))
+ Ω(int8(5)).Should(BeNumerically(">", 4))
+
+ Ω(uint32(5)).ShouldNot(BeNumerically(">", 5))
+ Ω(float64(5.0)).ShouldNot(BeNumerically(">", 5.0))
+ Ω(int8(5)).ShouldNot(BeNumerically(">", 5))
+ })
+
+ It("should support <", func() {
+ Ω(uint32(5)).Should(BeNumerically("<", 6))
+ Ω(float64(5.0)).Should(BeNumerically("<", 5.1))
+ Ω(int8(5)).Should(BeNumerically("<", 6))
+
+ Ω(uint32(5)).ShouldNot(BeNumerically("<", 5))
+ Ω(float64(5.0)).ShouldNot(BeNumerically("<", 5.0))
+ Ω(int8(5)).ShouldNot(BeNumerically("<", 5))
+ })
+
+ It("should support >=", func() {
+ Ω(uint32(5)).Should(BeNumerically(">=", 4))
+ Ω(float64(5.0)).Should(BeNumerically(">=", 4.9))
+ Ω(int8(5)).Should(BeNumerically(">=", 4))
+
+ Ω(uint32(5)).Should(BeNumerically(">=", 5))
+ Ω(float64(5.0)).Should(BeNumerically(">=", 5.0))
+ Ω(int8(5)).Should(BeNumerically(">=", 5))
+
+ Ω(uint32(5)).ShouldNot(BeNumerically(">=", 6))
+ Ω(float64(5.0)).ShouldNot(BeNumerically(">=", 5.1))
+ Ω(int8(5)).ShouldNot(BeNumerically(">=", 6))
+ })
+
+ It("should support <=", func() {
+ Ω(uint32(5)).Should(BeNumerically("<=", 6))
+ Ω(float64(5.0)).Should(BeNumerically("<=", 5.1))
+ Ω(int8(5)).Should(BeNumerically("<=", 6))
+
+ Ω(uint32(5)).Should(BeNumerically("<=", 5))
+ Ω(float64(5.0)).Should(BeNumerically("<=", 5.0))
+ Ω(int8(5)).Should(BeNumerically("<=", 5))
+
+ Ω(uint32(5)).ShouldNot(BeNumerically("<=", 4))
+ Ω(float64(5.0)).ShouldNot(BeNumerically("<=", 4.9))
+ Ω(int8(5)).Should(BeNumerically("<=", 5))
+ })
+
+ Context("when passed ~", func() {
+ Context("when passed a float", func() {
+ Context("and there is no precision parameter", func() {
+ It("should default to 1e-8", func() {
+ Ω(5.00000001).Should(BeNumerically("~", 5.00000002))
+ Ω(5.00000001).ShouldNot(BeNumerically("~", 5.0000001))
+ })
+ })
+
+ Context("and there is a precision parameter", func() {
+ It("should use the precision parameter", func() {
+ Ω(5.1).Should(BeNumerically("~", 5.19, 0.1))
+ Ω(5.1).Should(BeNumerically("~", 5.01, 0.1))
+ Ω(5.1).ShouldNot(BeNumerically("~", 5.22, 0.1))
+ Ω(5.1).ShouldNot(BeNumerically("~", 4.98, 0.1))
+ })
+ })
+ })
+
+ Context("when passed an int/uint", func() {
+ Context("and there is no precision parameter", func() {
+ It("should just do strict equality", func() {
+ Ω(5).Should(BeNumerically("~", 5))
+ Ω(5).ShouldNot(BeNumerically("~", 6))
+ Ω(uint(5)).ShouldNot(BeNumerically("~", 6))
+ })
+ })
+
+ Context("and there is a precision parameter", func() {
+ It("should use precision paramter", func() {
+ Ω(5).Should(BeNumerically("~", 6, 2))
+ Ω(5).ShouldNot(BeNumerically("~", 8, 2))
+ Ω(uint(5)).Should(BeNumerically("~", 6, 1))
+ })
+ })
+ })
+ })
+ })
+
+ Context("when passed a non-number", func() {
+ It("should error", func() {
+ success, err := (&BeNumericallyMatcher{Comparator: "==", CompareTo: []interface{}{5}}).Match("foo")
+ Ω(success).Should(BeFalse())
+ Ω(err).Should(HaveOccurred())
+
+ success, err = (&BeNumericallyMatcher{Comparator: "=="}).Match(5)
+ Ω(success).Should(BeFalse())
+ Ω(err).Should(HaveOccurred())
+
+ success, err = (&BeNumericallyMatcher{Comparator: "~", CompareTo: []interface{}{3.0, "foo"}}).Match(5.0)
+ Ω(success).Should(BeFalse())
+ Ω(err).Should(HaveOccurred())
+
+ success, err = (&BeNumericallyMatcher{Comparator: "==", CompareTo: []interface{}{"bar"}}).Match(5)
+ Ω(success).Should(BeFalse())
+ Ω(err).Should(HaveOccurred())
+
+ success, err = (&BeNumericallyMatcher{Comparator: "==", CompareTo: []interface{}{"bar"}}).Match("foo")
+ Ω(success).Should(BeFalse())
+ Ω(err).Should(HaveOccurred())
+
+ success, err = (&BeNumericallyMatcher{Comparator: "==", CompareTo: []interface{}{nil}}).Match(0)
+ Ω(success).Should(BeFalse())
+ Ω(err).Should(HaveOccurred())
+
+ success, err = (&BeNumericallyMatcher{Comparator: "==", CompareTo: []interface{}{0}}).Match(nil)
+ Ω(success).Should(BeFalse())
+ Ω(err).Should(HaveOccurred())
+ })
+ })
+
+ Context("when passed an unsupported comparator", func() {
+ It("should error", func() {
+ success, err := (&BeNumericallyMatcher{Comparator: "!=", CompareTo: []interface{}{5}}).Match(4)
+ Ω(success).Should(BeFalse())
+ Ω(err).Should(HaveOccurred())
+ })
+ })
+})