format source with scalafmt

This commit is contained in:
Auto Format 2019-03-11 10:38:24 +01:00 committed by Patrik Nordwall
parent 0f40491d42
commit ce404e4f53
1669 changed files with 43208 additions and 35404 deletions

View file

@ -46,12 +46,8 @@ class ORMultiMapSpec extends WordSpec with Matchers {
// more to document that the concurrent removal from the set may be lost
// than asserting anything
merged1.entries should be(Map(
"a" -> Set("A", "B")
))
merged2.entries should be(Map(
"a" -> Set("A", "B")
))
merged1.entries should be(Map("a" -> Set("A", "B")))
merged2.entries should be(Map("a" -> Set("A", "B")))
}
"be able to have its entries correctly merged with another ORMultiMap with other entries" in {
@ -60,15 +56,12 @@ class ORMultiMapSpec extends WordSpec with Matchers {
// merge both ways
val expectedMerge = Map(
"a" -> Set("A"),
"b" -> Set("B"),
"c" -> Set("C"))
val expectedMerge = Map("a" -> Set("A"), "b" -> Set("B"), "c" -> Set("C"))
val merged1 = m1 merge m2
val merged1 = m1.merge(m2)
merged1.entries should be(expectedMerge)
val merged2 = m2 merge m1
val merged2 = m2.merge(m1)
merged2.entries should be(expectedMerge)
}
@ -87,63 +80,58 @@ class ORMultiMapSpec extends WordSpec with Matchers {
// merge both ways
val expectedMerged = Map(
"a" -> Set("A2"),
"b" -> Set("B1"),
"c" -> Set("C2"),
"d" -> Set("D1", "D2"))
val expectedMerged = Map("a" -> Set("A2"), "b" -> Set("B1"), "c" -> Set("C2"), "d" -> Set("D1", "D2"))
val merged1 = m1 merge m2
val merged1 = m1.merge(m2)
merged1.entries should be(expectedMerged)
val merged2 = m2 merge m1
val merged2 = m2.merge(m1)
merged2.entries should be(expectedMerged)
val merged3 = m1 mergeDelta m2.delta.get
val merged3 = m1.mergeDelta(m2.delta.get)
merged3.entries should be(expectedMerged)
val merged4 = m2 mergeDelta m1.delta.get
val merged4 = m2.mergeDelta(m1.delta.get)
merged4.entries should be(expectedMerged)
}
}
"be able to have its entries correctly merged with another ORMultiMap with overlapping entries 2" in {
val m1 = ORMultiMap()
.addBinding(node1, "b", "B1")
val m2 = ORMultiMap()
.addBinding(node2, "b", "B2")
.remove(node2, "b")
val m1 = ORMultiMap().addBinding(node1, "b", "B1")
val m2 = ORMultiMap().addBinding(node2, "b", "B2").remove(node2, "b")
// merge both ways
val expectedMerged = Map(
"b" -> Set("B1"))
val expectedMerged = Map("b" -> Set("B1"))
val merged1 = m1 merge m2
val merged1 = m1.merge(m2)
merged1.entries should be(expectedMerged)
val merged2 = m2 merge m1
val merged2 = m2.merge(m1)
merged2.entries should be(expectedMerged)
val merged3 = m1 mergeDelta m2.delta.get
val merged3 = m1.mergeDelta(m2.delta.get)
merged3.entries should be(expectedMerged)
val merged4 = m2 mergeDelta m1.delta.get
val merged4 = m2.mergeDelta(m1.delta.get)
merged4.entries should be(expectedMerged)
}
"not have anomalies for remove+updated scenario and deltas" in {
val m2a = ORMultiMap.empty[String, String].addBinding(node1, "q", "Q").removeBinding(node1, "q", "Q")
val m1 = ORMultiMap.empty[String, String].addBinding(node1, "z", "Z").addBinding(node2, "x", "X")
val m1 = ORMultiMap
.empty[String, String]
.addBinding(node1, "z", "Z")
.addBinding(node2, "x", "X")
.removeBinding(node1, "z", "Z")
val m2 = m2a.resetDelta.removeBinding(node2, "a", "A")
val merged1 = m1 merge m2
val merged1 = m1.merge(m2)
merged1.contains("a") should be(false)
val merged2 = m1 mergeDelta m2.delta.get
val merged2 = m1.mergeDelta(m2.delta.get)
merged2.contains("a") should be(false)
}
@ -156,9 +144,7 @@ class ORMultiMapSpec extends WordSpec with Matchers {
val m2 = m.put(node1, "a", a - "A1")
val expectedMerged = Map(
"a" -> Set("A2"),
"b" -> Set("B1"))
val expectedMerged = Map("a" -> Set("A2"), "b" -> Set("B1"))
m2.entries should be(expectedMerged)
}
@ -179,36 +165,36 @@ class ORMultiMapSpec extends WordSpec with Matchers {
val m1 = ORMultiMap.emptyWithValueDeltas[String, String].put(node1, "a", Set("A")).put(node1, "b", Set("B"))
val m2 = ORMultiMap.emptyWithValueDeltas[String, String].put(node2, "c", Set("C"))
val merged1 = m1 merge m2
val merged1 = m1.merge(m2)
val m3 = merged1.resetDelta.remove(node1, "b")
val m4 = m3.resetDelta.addBinding(node1, "b", "B2")
val merged2 = m3 merge m4
val merged2 = m3.merge(m4)
merged2.entries("a") should be(Set("A"))
merged2.entries("b") should be(Set("B2"))
merged2.entries("c") should be(Set("C"))
val merged3 = m3 mergeDelta m4.delta.get
val merged3 = m3.mergeDelta(m4.delta.get)
merged3.entries("a") should be(Set("A"))
merged3.entries("b") should be(Set("B2"))
merged3.entries("c") should be(Set("C"))
val merged4 = merged1 merge m3 merge m4
val merged4 = merged1.merge(m3).merge(m4)
merged4.entries("a") should be(Set("A"))
merged4.entries("b") should be(Set("B2"))
merged4.entries("c") should be(Set("C"))
val merged5 = merged1 mergeDelta m3.delta.get mergeDelta m4.delta.get
val merged5 = merged1.mergeDelta(m3.delta.get).mergeDelta(m4.delta.get)
merged5.entries("a") should be(Set("A"))
merged5.entries("b") should be(Set("B2"))
merged5.entries("c") should be(Set("C"))
val merged6 = merged1 mergeDelta m3.delta.get.merge(m4.delta.get)
val merged6 = merged1.mergeDelta(m3.delta.get.merge(m4.delta.get))
merged6.entries("a") should be(Set("A"))
merged6.entries("b") should be(Set("B2"))
@ -221,9 +207,9 @@ class ORMultiMapSpec extends WordSpec with Matchers {
val m2 = ORMultiMap.emptyWithValueDeltas[String, String].put(node2, "c", Set("C"))
// m1 - node1 gets the update from m2
val merged1 = m1 merge m2
val merged1 = m1.merge(m2)
// m2 - node2 gets the update from m1
val merged2 = m2 merge m1
val merged2 = m2.merge(m1)
// no race condition
val m3 = merged1.resetDelta.remove(node1, "b")
@ -232,9 +218,9 @@ class ORMultiMapSpec extends WordSpec with Matchers {
// and the update is propagated before the update from node1 is merged
val m4 = merged2.resetDelta.addBinding(node2, "b", "B2")
// and later merged on node1
val merged3 = m3 merge m4
val merged3 = m3.merge(m4)
// and the other way round...
val merged4 = m4 merge m3
val merged4 = m4.merge(m3)
// result - the element "B" is kept on both sides...
merged3.entries("a") should be(Set("A"))
@ -247,9 +233,9 @@ class ORMultiMapSpec extends WordSpec with Matchers {
// but if the timing was slightly different, so that the update from node1
// would get merged just before update on node2:
val merged5 = (m2 merge m3).resetDelta.addBinding(node2, "b", "B2")
val merged5 = m2.merge(m3).resetDelta.addBinding(node2, "b", "B2")
// the update propagated ... and merged on node1:
val merged6 = m3 merge merged5
val merged6 = m3.merge(merged5)
// then the outcome would be the same...
merged5.entries("a") should be(Set("A"))
@ -265,12 +251,12 @@ class ORMultiMapSpec extends WordSpec with Matchers {
val m1 = ORMultiMap.emptyWithValueDeltas[String, String].put(node1, "a", Set("A")).put(node1, "b", Set("B"))
val m2 = m1.resetDelta.put(node2, "b", Set("B2")).addBinding(node2, "b", "B3")
val merged1 = m1 merge m2
val merged1 = m1.merge(m2)
merged1.entries("a") should be(Set("A"))
merged1.entries("b") should be(Set("B2", "B3"))
val merged2 = m1 mergeDelta m2.delta.get
val merged2 = m1.mergeDelta(m2.delta.get)
merged2.entries("a") should be(Set("A"))
merged2.entries("b") should be(Set("B2", "B3"))
@ -278,12 +264,12 @@ class ORMultiMapSpec extends WordSpec with Matchers {
val m3 = ORMultiMap.emptyWithValueDeltas[String, String].put(node1, "a", Set("A")).put(node1, "b", Set("B"))
val m4 = m3.resetDelta.put(node2, "b", Set("B2")).put(node2, "b", Set("B3"))
val merged3 = m3 merge m4
val merged3 = m3.merge(m4)
merged3.entries("a") should be(Set("A"))
merged3.entries("b") should be(Set("B3"))
val merged4 = m3 mergeDelta m4.delta.get
val merged4 = m3.mergeDelta(m4.delta.get)
merged4.entries("a") should be(Set("A"))
merged4.entries("b") should be(Set("B3"))
@ -291,12 +277,12 @@ class ORMultiMapSpec extends WordSpec with Matchers {
val m5 = ORMultiMap.emptyWithValueDeltas[String, String].put(node1, "a", Set("A")).put(node1, "b", Set("B"))
val m6 = m5.resetDelta.put(node2, "b", Set("B2")).addBinding(node2, "b", "B3").addBinding(node2, "b", "B4")
val merged5 = m5 merge m6
val merged5 = m5.merge(m6)
merged5.entries("a") should be(Set("A"))
merged5.entries("b") should be(Set("B2", "B3", "B4"))
val merged6 = m5 mergeDelta m6.delta.get
val merged6 = m5.mergeDelta(m6.delta.get)
merged6.entries("a") should be(Set("A"))
merged6.entries("b") should be(Set("B2", "B3", "B4"))
@ -304,13 +290,13 @@ class ORMultiMapSpec extends WordSpec with Matchers {
val m7 = ORMultiMap.emptyWithValueDeltas[String, String].put(node1, "a", Set("A")).put(node1, "b", Set("B"))
val m8 = m7.resetDelta.put(node2, "d", Set("D")).addBinding(node2, "b", "B3").put(node2, "b", Set("B4"))
val merged7 = m7 merge m8
val merged7 = m7.merge(m8)
merged7.entries("a") should be(Set("A"))
merged7.entries("b") should be(Set("B4"))
merged7.entries("d") should be(Set("D"))
val merged8 = m7 mergeDelta m8.delta.get
val merged8 = m7.mergeDelta(m8.delta.get)
merged8.entries("a") should be(Set("A"))
merged8.entries("b") should be(Set("B4"))
@ -319,55 +305,64 @@ class ORMultiMapSpec extends WordSpec with Matchers {
val m9 = ORMultiMap.emptyWithValueDeltas[String, String].put(node1, "a", Set("A")).put(node1, "b", Set("B"))
val m10 = m9.resetDelta.addBinding(node2, "b", "B3").addBinding(node2, "b", "B4")
val merged9 = m9 merge m10
val merged9 = m9.merge(m10)
merged9.entries("a") should be(Set("A"))
merged9.entries("b") should be(Set("B", "B3", "B4"))
val merged10 = m9 mergeDelta m10.delta.get
val merged10 = m9.mergeDelta(m10.delta.get)
merged10.entries("a") should be(Set("A"))
merged10.entries("b") should be(Set("B", "B3", "B4"))
val m11 = ORMultiMap.emptyWithValueDeltas[String, String].put(node1, "a", Set("A")).put(node1, "b", Set("B", "B1"))
val m11 = ORMultiMap
.emptyWithValueDeltas[String, String]
.put(node1, "a", Set("A"))
.put(node1, "b", Set("B", "B1"))
.remove(node1, "b")
val m12 = m11.resetDelta.addBinding(node2, "b", "B2").addBinding(node2, "b", "B3")
val merged11 = m11 merge m12
val merged11 = m11.merge(m12)
merged11.entries("a") should be(Set("A"))
merged11.entries("b") should be(Set("B2", "B3"))
val merged12 = m11 mergeDelta m12.delta.get
val merged12 = m11.mergeDelta(m12.delta.get)
merged12.entries("a") should be(Set("A"))
merged12.entries("b") should be(Set("B2", "B3"))
val m13 = ORMultiMap.emptyWithValueDeltas[String, String].put(node1, "a", Set("A")).put(node1, "b", Set("B", "B1"))
val m13 = ORMultiMap
.emptyWithValueDeltas[String, String]
.put(node1, "a", Set("A"))
.put(node1, "b", Set("B", "B1"))
.remove(node1, "b")
val m14 = m13.resetDelta.addBinding(node2, "b", "B2").put(node2, "b", Set("B3"))
val merged13 = m13 merge m14
val merged13 = m13.merge(m14)
merged13.entries("a") should be(Set("A"))
merged13.entries("b") should be(Set("B3"))
val merged14 = m13 mergeDelta m14.delta.get
val merged14 = m13.mergeDelta(m14.delta.get)
merged14.entries("a") should be(Set("A"))
merged14.entries("b") should be(Set("B3"))
val m15 = ORMultiMap.emptyWithValueDeltas[String, String].put(node1, "a", Set("A")).put(node1, "b", Set("B", "B1"))
val m15 = ORMultiMap
.emptyWithValueDeltas[String, String]
.put(node1, "a", Set("A"))
.put(node1, "b", Set("B", "B1"))
.put(node1, "c", Set("C"))
val m16 = m15.resetDelta.addBinding(node2, "b", "B2").addBinding(node2, "c", "C1")
val merged15 = m15 merge m16
val merged15 = m15.merge(m16)
merged15.entries("a") should be(Set("A"))
merged15.entries("b") should be(Set("B", "B1", "B2"))
merged15.entries("c") should be(Set("C", "C1"))
val merged16 = m15 mergeDelta m16.delta.get
val merged16 = m15.mergeDelta(m16.delta.get)
merged16.entries("a") should be(Set("A"))
merged16.entries("b") should be(Set("B", "B1", "B2"))
@ -378,12 +373,12 @@ class ORMultiMapSpec extends WordSpec with Matchers {
val m18 = m17.resetDelta.addBinding(node2, "b", "B2")
val m19 = ORMultiMap.emptyWithValueDeltas[String, String].resetDelta.put(node2, "b", Set("B3"))
val merged17 = m17 merge m18 merge m19
val merged17 = m17.merge(m18).merge(m19)
merged17.entries("a") should be(Set("A"))
merged17.entries("b") should be(Set("B", "B1", "B3"))
val merged18 = m17 mergeDelta m18.delta.get.merge(m19.delta.get)
val merged18 = m17.mergeDelta(m18.delta.get.merge(m19.delta.get))
merged18.entries("a") should be(Set("A"))
merged18.entries("b") should be(Set("B", "B1", "B3"))
@ -393,12 +388,12 @@ class ORMultiMapSpec extends WordSpec with Matchers {
val m1 = ORMultiMap.empty[String, String].put(node1, "a", Set("A")).put(node1, "b", Set("B"))
val m2 = m1.resetDelta.put(node2, "b", Set("B2")).addBinding(node2, "b", "B3")
val merged1 = m1 merge m2
val merged1 = m1.merge(m2)
merged1.entries("a") should be(Set("A"))
merged1.entries("b") should be(Set("B2", "B3"))
val merged2 = m1 mergeDelta m2.delta.get
val merged2 = m1.mergeDelta(m2.delta.get)
merged2.entries("a") should be(Set("A"))
merged2.entries("b") should be(Set("B2", "B3"))
@ -406,12 +401,12 @@ class ORMultiMapSpec extends WordSpec with Matchers {
val m3 = ORMultiMap.empty[String, String].put(node1, "a", Set("A")).put(node1, "b", Set("B"))
val m4 = m3.resetDelta.put(node2, "b", Set("B2")).put(node2, "b", Set("B3"))
val merged3 = m3 merge m4
val merged3 = m3.merge(m4)
merged3.entries("a") should be(Set("A"))
merged3.entries("b") should be(Set("B3"))
val merged4 = m3 mergeDelta m4.delta.get
val merged4 = m3.mergeDelta(m4.delta.get)
merged4.entries("a") should be(Set("A"))
merged4.entries("b") should be(Set("B3"))
@ -419,12 +414,12 @@ class ORMultiMapSpec extends WordSpec with Matchers {
val m5 = ORMultiMap.empty[String, String].put(node1, "a", Set("A")).put(node1, "b", Set("B"))
val m6 = m5.resetDelta.put(node2, "b", Set("B2")).addBinding(node2, "b", "B3").addBinding(node2, "b", "B4")
val merged5 = m5 merge m6
val merged5 = m5.merge(m6)
merged5.entries("a") should be(Set("A"))
merged5.entries("b") should be(Set("B2", "B3", "B4"))
val merged6 = m5 mergeDelta m6.delta.get
val merged6 = m5.mergeDelta(m6.delta.get)
merged6.entries("a") should be(Set("A"))
merged6.entries("b") should be(Set("B2", "B3", "B4"))
@ -432,13 +427,13 @@ class ORMultiMapSpec extends WordSpec with Matchers {
val m7 = ORMultiMap.empty[String, String].put(node1, "a", Set("A")).put(node1, "b", Set("B"))
val m8 = m7.resetDelta.put(node2, "d", Set("D")).addBinding(node2, "b", "B3").put(node2, "b", Set("B4"))
val merged7 = m7 merge m8
val merged7 = m7.merge(m8)
merged7.entries("a") should be(Set("A"))
merged7.entries("b") should be(Set("B4"))
merged7.entries("d") should be(Set("D"))
val merged8 = m7 mergeDelta m8.delta.get
val merged8 = m7.mergeDelta(m8.delta.get)
merged8.entries("a") should be(Set("A"))
merged8.entries("b") should be(Set("B4"))
@ -447,26 +442,26 @@ class ORMultiMapSpec extends WordSpec with Matchers {
val m9 = ORMultiMap.empty[String, String].put(node1, "a", Set("A")).put(node1, "b", Set("B"))
val m10 = m9.resetDelta.addBinding(node2, "b", "B3").addBinding(node2, "b", "B4")
val merged9 = m9 merge m10
val merged9 = m9.merge(m10)
merged9.entries("a") should be(Set("A"))
merged9.entries("b") should be(Set("B", "B3", "B4"))
val merged10 = m9 mergeDelta m10.delta.get
val merged10 = m9.mergeDelta(m10.delta.get)
merged10.entries("a") should be(Set("A"))
merged10.entries("b") should be(Set("B", "B3", "B4"))
val m11 = ORMultiMap.empty[String, String].put(node1, "a", Set("A")).put(node1, "b", Set("B", "B1"))
.remove(node1, "b")
val m11 =
ORMultiMap.empty[String, String].put(node1, "a", Set("A")).put(node1, "b", Set("B", "B1")).remove(node1, "b")
val m12 = ORMultiMap.empty[String, String].addBinding(node2, "b", "B2").addBinding(node2, "b", "B3")
val merged11 = m11 merge m12
val merged11 = m11.merge(m12)
merged11.entries("a") should be(Set("A"))
merged11.entries("b") should be(Set("B2", "B3"))
val merged12 = m11 mergeDelta m12.delta.get
val merged12 = m11.mergeDelta(m12.delta.get)
merged12.entries("a") should be(Set("A"))
merged12.entries("b") should be(Set("B2", "B3"))
@ -488,13 +483,15 @@ class ORMultiMapSpec extends WordSpec with Matchers {
val m3 = m1.mergeDelta(m2.delta.get)
val m4 = m1.merge(m2)
m3.underlying.values.contains("a") should be(false) // tombstone for 'a' has been optimized away at the end of the mergeDelta
m4.underlying.values.contains("a") should be(false) // tombstone for 'a' has been optimized away at the end of the merge
m3.underlying.values
.contains("a") should be(false) // tombstone for 'a' has been optimized away at the end of the mergeDelta
m4.underlying.values
.contains("a") should be(false) // tombstone for 'a' has been optimized away at the end of the merge
val m5 = ORMultiMap.emptyWithValueDeltas[String, String].put(node1, "a", Set("A1"))
(m3 mergeDelta m5.delta.get).entries("a") should ===(Set("A1"))
(m4 mergeDelta m5.delta.get).entries("a") should ===(Set("A1"))
(m4 merge m5).entries("a") should ===(Set("A1"))
m3.mergeDelta(m5.delta.get).entries("a") should ===(Set("A1"))
m4.mergeDelta(m5.delta.get).entries("a") should ===(Set("A1"))
m4.merge(m5).entries("a") should ===(Set("A1"))
// addBinding - add a binding for a certain value - no tombstone is created
// this operation works through "updated" call of the underlying ORMap, that is not exposed
@ -510,13 +507,15 @@ class ORMultiMapSpec extends WordSpec with Matchers {
val um3 = um1.mergeDelta(um2.delta.get)
val um4 = um1.merge(um2)
um3.underlying.values.contains("a") should be(false) // tombstone for 'a' has been optimized away at the end of the mergeDelta
um4.underlying.values.contains("a") should be(false) // tombstone for 'a' has been optimized away at the end of the merge
um3.underlying.values
.contains("a") should be(false) // tombstone for 'a' has been optimized away at the end of the mergeDelta
um4.underlying.values
.contains("a") should be(false) // tombstone for 'a' has been optimized away at the end of the merge
val um5 = ORMultiMap.emptyWithValueDeltas[String, String].addBinding(node1, "a", "A1")
(um3 mergeDelta um5.delta.get).entries("a") should ===(Set("A1"))
(um4 mergeDelta um5.delta.get).entries("a") should ===(Set("A1"))
(um4 merge um5).entries("a") should ===(Set("A1"))
um3.mergeDelta(um5.delta.get).entries("a") should ===(Set("A1"))
um4.mergeDelta(um5.delta.get).entries("a") should ===(Set("A1"))
um4.merge(um5).entries("a") should ===(Set("A1"))
// replaceBinding - that would first addBinding for new binding and then removeBinding for old binding
// so no tombstone would be created
@ -528,15 +527,22 @@ class ORMultiMapSpec extends WordSpec with Matchers {
// without previous delta containing 'clear' or 'put' operation setting the tombstone at Set()
// the example shown below cannot happen in practice
val tm1 = new ORMultiMap(ORMultiMap.emptyWithValueDeltas[String, String].addBinding(node1, "a", "A").underlying.removeKey(node1, "a"), true)
val tm1 = new ORMultiMap(
ORMultiMap.emptyWithValueDeltas[String, String].addBinding(node1, "a", "A").underlying.removeKey(node1, "a"),
true)
tm1.underlying.values("a").elements should ===(Set("A")) // tombstone
tm1.addBinding(node1, "a", "A1").entries("a") should be(Set("A", "A1"))
val tm2 = ORMultiMap.emptyWithValueDeltas[String, String].put(node1, "a", Set("A")).resetDelta.addBinding(node1, "a", "A1")
val tm2 =
ORMultiMap.emptyWithValueDeltas[String, String].put(node1, "a", Set("A")).resetDelta.addBinding(node1, "a", "A1")
tm1.mergeDelta(tm2.delta.get).entries("a") should be(Set("A", "A1"))
tm1.merge(tm2).entries("a") should be(Set("A", "A1"))
val tm3 = new ORMultiMap(ORMultiMap.emptyWithValueDeltas[String, String].addBinding(node1, "a", "A").underlying.remove(node1, "a"), true)
val tm3 = new ORMultiMap(
ORMultiMap.emptyWithValueDeltas[String, String].addBinding(node1, "a", "A").underlying.remove(node1, "a"),
true)
tm3.underlying.contains("a") should ===(false) // no tombstone, because remove not removeKey
tm3.mergeDelta(tm2.delta.get).entries should ===(Map.empty[String, String]) // no tombstone - update delta could not be applied
tm3
.mergeDelta(tm2.delta.get)
.entries should ===(Map.empty[String, String]) // no tombstone - update delta could not be applied
tm3.merge(tm2).entries should ===(Map.empty[String, String])
// The only valid value for tombstone created by means of either API call or application of delta propagation is Set()