-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.go
More file actions
52 lines (43 loc) · 1.22 KB
/
Copy pathmain.go
File metadata and controls
52 lines (43 loc) · 1.22 KB
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
package main
import "fmt"
const (
NUM_OF_CLIENTS = 2
)
func main() {
fmt.Println("==============================")
fmt.Println("G-Counter - Grow only counter")
fmt.Println("==============================")
cl1 := NewGCounter(1, NUM_OF_CLIENTS, 0)
cl2 := NewGCounter(2, NUM_OF_CLIENTS, 0)
cl1.Increment(1)
cl2.Increment(3)
cl2.Increment(3)
cl1.Increment(1)
cl1.Increment(1)
fmt.Println("Before Merge")
fmt.Printf("client 1: %v\n", cl1.Query())
fmt.Printf("client 2: %v\n", cl2.Query())
cl1.Merge(cl2)
cl2.Merge(cl1)
fmt.Println("After Merge")
fmt.Printf("client 1: %v\n", cl1.Query())
fmt.Printf("client 2: %v\n", cl2.Query())
fmt.Println("========================================")
fmt.Println("PN-Counter - Positive Negative Counter")
fmt.Println("========================================")
cl3 := NewPNCounter(1, NUM_OF_CLIENTS, 0)
cl4 := NewPNCounter(2, NUM_OF_CLIENTS, 0)
cl3.Update(2)
cl3.Update(3)
cl4.Update(5)
cl3.Update(-4)
cl4.Update(-2)
fmt.Println("Before Merge")
fmt.Printf("client 3: %v\n", cl3.Query())
fmt.Printf("client 4: %v\n", cl4.Query())
cl3.Merge(cl4)
cl4.Merge(cl3)
fmt.Println("After Merge")
fmt.Printf("client 3: %v\n", cl3.Query())
fmt.Printf("client 4: %v\n", cl4.Query())
}