Extract counter value from vector
This commit is contained in:
10
vector.go
10
vector.go
@@ -103,3 +103,13 @@ func (a Vector) Concurrent(b Vector) bool {
|
|||||||
comp := a.Compare(b)
|
comp := a.Compare(b)
|
||||||
return comp == ConcurrentGreater || comp == ConcurrentLesser
|
return comp == ConcurrentGreater || comp == ConcurrentLesser
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Counter returns the current value of the given counter ID.
|
||||||
|
func (v Vector) Counter(id uint64) uint64 {
|
||||||
|
for _, c := range v {
|
||||||
|
if c.ID == id {
|
||||||
|
return c.Value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|||||||
@@ -118,5 +118,17 @@ func TestMerge(t *testing.T) {
|
|||||||
t.Errorf("%d: %+v.Merge(%+v) == %+v (expected %+v)", i, tc.a, tc.b, m, tc.m)
|
t.Errorf("%d: %+v.Merge(%+v) == %+v (expected %+v)", i, tc.a, tc.b, m, tc.m)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCounterValue(t *testing.T) {
|
||||||
|
v0 := Vector{Counter{42, 1}, Counter{64, 5}}
|
||||||
|
if v0.Counter(42) != 1 {
|
||||||
|
t.Error("Counter error, %d != %d", v0.Counter(42), 1)
|
||||||
|
}
|
||||||
|
if v0.Counter(64) != 5 {
|
||||||
|
t.Error("Counter error, %d != %d", v0.Counter(64), 5)
|
||||||
|
}
|
||||||
|
if v0.Counter(72) != 0 {
|
||||||
|
t.Error("Counter error, %d != %d", v0.Counter(72), 0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user