From 4e5a182b9b0cf41175760117b3080769255bb859 Mon Sep 17 00:00:00 2001 From: Eduardo Pareja-Tobes Date: Tue, 8 Nov 2016 13:00:22 +0100 Subject: [PATCH] add tests for accessing the whole GO data --- src/main/scala/go.scala | 2 +- src/main/scala/oboxml/parser.scala | 4 +- src/test/scala/Datago.scala | 16 ------ src/test/scala/oboxml.scala | 86 ++++++++++++++++++++++++++++++ 4 files changed, 89 insertions(+), 19 deletions(-) delete mode 100644 src/test/scala/Datago.scala create mode 100644 src/test/scala/oboxml.scala diff --git a/src/main/scala/go.scala b/src/main/scala/go.scala index 9db4754..b0f9190 100644 --- a/src/main/scala/go.scala +++ b/src/main/scala/go.scala @@ -18,7 +18,7 @@ trait AnyTerm extends Any { def name: String def definition: String def namespace: String // TODO finite known set of namespaces - def comments: String + def comments: Seq[String] } sealed trait AnyRel { diff --git a/src/main/scala/oboxml/parser.scala b/src/main/scala/oboxml/parser.scala index 4153e4f..cbf4c8f 100644 --- a/src/main/scala/oboxml/parser.scala +++ b/src/main/scala/oboxml/parser.scala @@ -33,8 +33,8 @@ case class XmlTerm(val xml: Node) extends AnyVal with AnyTerm { def name: String = (xml \ "name").head.text - def comments: String = - (xml \ "comment").head.text + def comments: Seq[String] = + (xml \ "comment") map { _.text } def namespace: String = (xml \ "namespace").head.text diff --git a/src/test/scala/Datago.scala b/src/test/scala/Datago.scala deleted file mode 100644 index a1dd53f..0000000 --- a/src/test/scala/Datago.scala +++ /dev/null @@ -1,16 +0,0 @@ -package bio4j.datago.test - -import org.scalatest.FunSuite - -import bio4j.datago._ - -class DatagoTest extends FunSuite { - - test("Dummy test coming from the template") { - - assert( - - 12 === 12 - ) - } -} diff --git a/src/test/scala/oboxml.scala b/src/test/scala/oboxml.scala new file mode 100644 index 0000000..996ce7a --- /dev/null +++ b/src/test/scala/oboxml.scala @@ -0,0 +1,86 @@ +package com.bio4j.data.go.test + +import org.scalatest.FunSuite +import com.bio4j.data.go._ +import scala.xml._ + +class OBOXML extends FunSuite { + + private lazy val MyXML = new factory.XMLLoader[Elem] { + + private lazy val parserFactory = { + val f0 = javax.xml.parsers.SAXParserFactory.newInstance() + f0.setNamespaceAware(false) + f0.setValidating(false) + f0.setXIncludeAware(false) + f0 + } + + private lazy val parser0 = parserFactory.newSAXParser() + + override def parser: SAXParser = parser0 + } + + + test("parse whole GO oboxml file, access all data") { + + val go = oboxml.GOOBOXML(MyXML.loadFile("go_daily-termdb.obo-xml")) + + val terms = go.terms + println { s"number of terms: ${terms.size}" } + + terms foreach { term => + + val id = term.ID + val name = term.name + val definition = term.definition + val namespace = term.namespace + val comments = term.comments + } + + val isA = go.isA + println { s"number of isA: ${isA.size}" } + + isA foreach { rel => + + val source = rel.sourceID + val target = rel.targetID + } + + val partOf = go.partOf + println { s"number of partOf: ${partOf.size}" } + + partOf foreach { rel => + + val source = rel.sourceID + val target = rel.targetID + } + + val regulates = go.regulates + println { s"number of regulates: ${regulates.size}" } + + regulates foreach { rel => + + val source = rel.sourceID + val target = rel.targetID + } + + val positivelyRegulates = go.positivelyRegulates + println { s"number of positivelyRegulates: ${positivelyRegulates.size}" } + + positivelyRegulates foreach { rel => + + val source = rel.sourceID + val target = rel.targetID + } + + val negativelyRegulates = go.negativelyRegulates + println { s"number of negativelyRegulates: ${negativelyRegulates.size}" } + + negativelyRegulates foreach { rel => + + val source = rel.sourceID + val target = rel.targetID + } + } +}