-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
compact_example_test.go
87 lines (69 loc) · 1.55 KB
/
compact_example_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package comver_test
import (
"fmt"
"github.com/typisttech/comver"
)
func ExampleCompact() {
o := comver.Or{
comver.MustAnd(
comver.NewLessThan(comver.MustParse("2")),
comver.NewGreaterThan(comver.MustParse("1")),
),
comver.MustAnd(
comver.NewLessThan(comver.MustParse("5")),
comver.NewGreaterThan(comver.MustParse("3")),
),
comver.MustAnd(
comver.NewLessThan(comver.MustParse("6")),
comver.NewGreaterThan(comver.MustParse("4")),
),
}
c := comver.Compact(o)
fmt.Println("Before:", o)
fmt.Println("After:", c)
// Output:
// Before: >1 <2 || >3 <5 || >4 <6
// After: >1 <2 || >3 <6
}
func ExampleCompact_endless() {
o := comver.Or{
comver.MustAnd(
comver.NewLessThan(comver.MustParse("5")),
comver.NewGreaterThan(comver.MustParse("3")),
),
comver.NewGreaterThan(comver.MustParse("4")),
}
c := comver.Compact(o)
fmt.Println("Before:", o)
fmt.Println("After:", c)
// Output:
// Before: >3 <5 || >4
// After: >3
}
func ExampleCompact_matchAll() {
o := comver.Or{
comver.NewLessThan(comver.MustParse("3")),
comver.NewGreaterThan(comver.MustParse("2")),
}
c := comver.Compact(o)
fmt.Println("Before:", o)
fmt.Println("After:", c)
// Output:
// Before: <3 || >2
// After: *
}
func ExampleCompact_matchAllTrumps() {
o := comver.Or{
comver.MustAnd(
comver.NewLessThan(comver.MustParse("2")),
comver.NewGreaterThan(comver.MustParse("1")),
),
comver.NewMatchAll(),
}
c := comver.Compact(o)
fmt.Println("Before:", o)
fmt.Println("After:", c)
// Output:
// Before: >1 <2 || *
// After: *
}