@@ -10,19 +10,19 @@ import org.junit.experimental.theories.DataPoints
1010import org .junit .runner .RunWith
1111/**
1212 * This test verify that after the tranform, the resultant xml node
13- * uses as many old nodes as possible.
14- *
15- * Three transformers class for case -
16- * One for orginal, one for modified, and one proposed which shows
13+ * uses as many old nodes as possible.
14+ *
15+ * Three transformers class for case -
16+ * One for orginal, one for modified, and one proposed which shows
1717 * all are equivalent when it comes to reusing as many nodes as possible
1818 */
1919object ReuseNodesTest {
20-
20+
2121 class OriginalTranformr (rules : RewriteRule * ) extends RuleTransformer (rules:_* ) {
2222 override def transform (ns : Seq [Node ]): Seq [Node ] = {
2323 val xs = ns.toStream map transform
2424 val (xs1, xs2) = xs zip ns span { case (x, n) => unchanged(n, x) }
25-
25+
2626 if (xs2.isEmpty) ns
2727 else (xs1 map (_._2)) ++ xs2.head._1 ++ transform(ns drop (xs1.length + 1 ))
2828 }
@@ -32,7 +32,7 @@ object ReuseNodesTest {
3232 class ModifiedTranformr (rules : RewriteRule * ) extends RuleTransformer (rules:_* ) {
3333 override def transform (ns : Seq [Node ]): Seq [Node ] = {
3434 val changed = ns flatMap transform
35-
35+
3636 if (changed.length != ns.length || (changed, ns).zipped.exists(_ != _)) changed
3737 else ns
3838 }
@@ -43,13 +43,13 @@ object ReuseNodesTest {
4343 override def transform (ns : Seq [Node ]): Seq [Node ] = {
4444 val xs = ns.toStream map transform
4545 val (xs1, xs2) = xs zip ns span { case (x, n) => unchanged(n, x) }
46-
46+
4747 if (xs2.isEmpty) ns
4848 else (xs1 map (_._2)) ++ xs2.head._1 ++ transform(ns drop (xs1.length + 1 ))
4949 }
5050 override def transform (n: Node ): Seq [Node ] = super .transform(n)
5151 }
52-
52+
5353 def rewriteRule = new RewriteRule {
5454 override def transform (n : Node ): NodeSeq = n match {
5555 case n if n.label == " change" => Elem (
@@ -58,7 +58,7 @@ object ReuseNodesTest {
5858 }
5959 }
6060
61- @ DataPoints
61+ @ DataPoints
6262 def tranformers () = Array (
6363 new OriginalTranformr (rewriteRule),
6464 new ModifiedTranformr (rewriteRule),
@@ -67,40 +67,41 @@ object ReuseNodesTest {
6767
6868@ RunWith (classOf [Theories ])
6969class ReuseNodesTest {
70-
70+
7171 @ Theory
72- def transformReferentialEquality (rt: RuleTransformer ) = {
72+ def transformReferentialEquality (rt: RuleTransformer ) = {
7373 val original = <p ><lost /></p >
7474 val tranformed = rt.transform(original)
7575 assertTrue(original eq tranformed)
7676 }
77-
77+
7878 @ Theory
79- def transformReferentialEqualityOnly (rt: RuleTransformer ) = {
79+ def transformReferentialEqualityOnly (rt: RuleTransformer ) = {
8080 val original = <changed ><change ><lost /><a ><b ><c /></b ></a ></change ><a ><b ><c /></b ></a ></changed >
8181 val transformed = rt.transform(original)
8282 recursiveAssert(original,transformed)
8383 }
84-
84+
8585 def recursiveAssert (original: Seq [Node ], transformed: Seq [Node ]): Unit = {
8686 (original.toList,transformed.toList) match {
8787 case (Nil , Nil ) => {}
88- case (x:: xs,y:: ys) => {
88+ case (x:: xs,y:: ys) => {
8989 recursiveAssert(x,y)
9090 recursiveAssert(xs,ys)
9191 }
92- }
92+ case _ => {}
93+ }
9394 }
94-
95+
9596 def recursiveAssert (original: Node , transformed: Node ): Unit = {
96- transformed.label match {
97+ transformed.label match {
9798 case " changed" => // do nothing expect this node to be changed
9899 recursiveAssert(original.child,transformed.child)
99100 case _ => {
100101 assertTrue(original eq transformed)
101- // No need to check for childrens, node being immuatable
102+ // No need to check for childrens, node being immuatable
102103 // childs can't be differnt if parents are refertially equal
103104 }
104105 }
105106 }
106- }
107+ }
0 commit comments