From b9a01f399563b5755fb2021f8fe34ac4c67d1bd1 Mon Sep 17 00:00:00 2001 From: Fawzi Mohamed <fawzi.mohamed@fhi-berlin.mpg.de> Date: Tue, 13 Sep 2016 14:15:57 +0200 Subject: [PATCH] scala wrapper and tests --- .gitlab-ci.yml | 19 ++++++++ .../eu/nomad_lab/parsers/DftbPlusParser.scala | 44 +++++++++++++++++++ .../parsers/DftbPlusParserSpec.scala | 14 ++++++ 3 files changed, 77 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 src/main/scala/eu/nomad_lab/parsers/DftbPlusParser.scala create mode 100644 src/test/scala/eu/nomad_lab/parsers/DftbPlusParserSpec.scala diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..2398357 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,19 @@ +stages: + - test + +testing: + stage: test + script: + - cd .. && rm -rf nomad-lab-base + - git clone --recursive git@gitlab.mpcdf.mpg.de:nomad-lab/nomad-lab-base.git + - cd nomad-lab-base + - git submodule foreach git checkout master + - git submodule foreach git pull + - sbt dftbPlus/test + - export PYTHONEXE=/labEnv/bin/python + - sbt dftbPlus/test + only: + - master + tags: + - test + - spec2 diff --git a/src/main/scala/eu/nomad_lab/parsers/DftbPlusParser.scala b/src/main/scala/eu/nomad_lab/parsers/DftbPlusParser.scala new file mode 100644 index 0000000..469ffea --- /dev/null +++ b/src/main/scala/eu/nomad_lab/parsers/DftbPlusParser.scala @@ -0,0 +1,44 @@ +package eu.nomad_lab.parsers + +import eu.nomad_lab +import eu.nomad_lab.DefaultPythonInterpreter +import org.{ json4s => jn } +import eu.{ nomad_lab => lab } +import scala.collection.breakOut + +object DftbPlusParser extends SimpleExternalParserGenerator( + name = "DftbPlusParser", + parserInfo = jn.JObject( + ("name" -> jn.JString("DftbPlus")) :: + ("parserId" -> jn.JString("DftbPlus" + lab.DftbPlusVersionInfo.version)) :: + ("versionInfo" -> jn.JObject( + ("nomadCoreVersion" -> jn.JObject(lab.NomadCoreVersionInfo.toMap.map { + case (k, v) => k -> jn.JString(v.toString) + }(breakOut): List[(String, jn.JString)])) :: + (lab.DftbPlusVersionInfo.toMap.map { + case (key, value) => + (key -> jn.JString(value.toString)) + }(breakOut): List[(String, jn.JString)]) + )) :: Nil + ), + mainFileTypes = Seq("text/.*"), + mainFileRe = """ Fermi distribution function + +""".r, + cmd = Seq(DefaultPythonInterpreter.pythonExe(), "${envDir}/parsers/dftb-plus/parser/parser-dftb-plus/dftb-plus_parser.py", + "--uri", "${mainFileUri}", "${mainFilePath}"), + resList = Seq( + "parser-dftb+/parser_dftb+.py", + "parser-dftb+/setup_paths.py", + "nomad_meta_info/public.nomadmetainfo.json", + "nomad_meta_info/common.nomadmetainfo.json", + "nomad_meta_info/meta_types.nomadmetainfo.json", + "nomad_meta_info/dftb_plus.nomadmetainfo.json" + ) ++ DefaultPythonInterpreter.commonFiles(), + dirMap = Map( + "parser-dftb-plus" -> "parsers/dftb-plus/parser/parser-dftb-plus", + "nomad_meta_info" -> "nomad-meta-info/meta_info/nomad_meta_info", + "python" -> "python-common/common/python/nomadcore" + ) ++ DefaultPythonInterpreter.commonDirMapping(), + metaInfoEnv = Some(lab.meta.KnownMetaInfoEnvs.dftbPlus) +) diff --git a/src/test/scala/eu/nomad_lab/parsers/DftbPlusParserSpec.scala b/src/test/scala/eu/nomad_lab/parsers/DftbPlusParserSpec.scala new file mode 100644 index 0000000..0e0dcf3 --- /dev/null +++ b/src/test/scala/eu/nomad_lab/parsers/DftbPlusParserSpec.scala @@ -0,0 +1,14 @@ +package eu.nomad_lab.parsers + +import org.specs2.mutable.Specification + +object DftbPlusTests extends Specification { + "DftbPlusParserTest" >> { + "test with json-events" >> { + ParserRun.parse(DftbPlusParser, "parsers/dftbPlus/test/examples/detailed.out", "json-events") must_== ParseResult.ParseSuccess + } + "test with json" >> { + ParserRun.parse(DftbPlusParser, "parsers/dftbPlus/test/examples/detailed.out", "json") must_== ParseResult.ParseSuccess + } + } +} -- GitLab