object Test {
import scala.testing.UnitTest._
import scala.xml._
def handle[A](x:Node): A = {
Console println x
x.child(0).asInstanceOf[Atom[A]].data
}
def main(args:Array[String]) = {
import scala.xml.NodeSeq
import NodeSeq.view
import testing.UnitTest._
val xNull = {null} // these used to be Atom(unit), changed to empty children
assertSameElements( xNull.child, Nil )
val x0 = {} // these used to be Atom(unit), changed to empty children
val x00 = { } // dto.
val xa = { "world" }
assertSameElements( x0.child, Nil )
assertSameElements( x00.child, Nil )
assertEquals( handle[String](xa),"world" )
val xb = { 1.5 }
assertEquals( handle[Double](xb), 1.5 )
val xc = { 5 }
assertEquals( handle[Int](xc), 5 )
val xd = { true }
assertEquals( handle[Boolean](xd), true )
val xe = { 5:short }
assertEquals( handle[Short](xe), 5:short )
val xf = { val x = 27; x }
assertEquals( handle[Int](xf), 27 )
val xg = { List(1,2,3,4) }
Console println xg
for(val z <- xg.child) {
Console println z.toString() + {if (z.isInstanceOf[Text]) "(is text node ' ')" else ""}
}
val xh = { for(val x <- List(1,2,3,4); x % 2 == 0) yield x }
Console println xh
for(val z <- xh.child) {
Console println z.toString() + {if (z.isInstanceOf[Text]) "(is text node ' ')" else ""}
}
}
}