Changeset 290 for ruby/branches/0.5/lib/adl_parser/test/scanner_test.rb
- Timestamp:
- Sep 24, 2009, 9:51:27 AM (15 years ago)
- Location:
- ruby/branches/0.5
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
ruby/branches/0.5
-
Property svn:mergeinfo
set to
/ruby/trunk merged eligible
-
Property svn:mergeinfo
set to
-
ruby/branches/0.5/lib/adl_parser/test/scanner_test.rb
r167 r290 1 require 'lib/adl_parser.rb' 2 #require 'lib/scanner.rb' 3 require 'test/unit' 1 require File.dirname(__FILE__) + '/test_helper.rb' 4 2 5 class YaparcParserTest < Test::Unit::TestCase 6 def test_RootScanner 7 parser = OpenEhr::ADL::Scanner::DADL::RootScanner.new 8 assert_instance_of OpenEhr::ADL::Scanner::DADL::RootScanner,parser 9 result = parser.parse('') 3 class ADLScannerTest < Test::Unit::TestCase 4 def setup 5 @scanner = OpenEHR::ADL::Scanner::ADLScanner.new([:adl], "filename") 10 6 end 11 7 12 def test_V_LOCAL_TERM_CODE_REF 13 parser = OpenEhr::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new 14 assert_instance_of OpenEhr::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF,parser 15 result = parser.parse('[en-us]') 16 assert_instance_of Yaparc::Result::OK, result 8 must "assert OpenEHR::ADL::Scanner::ADLScanner scanner instance" do 9 assert_instance_of OpenEHR::ADL::Scanner::ADLScanner, @scanner 17 10 end 18 11 19 def test_V_QUALIFIED_TERM_CODE_REF 20 parser = OpenEhr::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new 21 assert_instance_of OpenEhr::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF,parser 22 result = parser.parse('[ISO_639::en]') 23 assert_instance_of Yaparc::Result::OK, result 24 result = parser.parse('[ISO_639::en-us]') 25 assert_instance_of Yaparc::Result::OK, result 12 must "assert ADLScanner scanner scan CR and lineno incremented" do 13 lineno = @scanner.lineno 14 @scanner.scan("\n") 15 assert_equal lineno+1, @scanner.lineno 26 16 end 27 17 28 def test_V_STRING 29 parser = OpenEhr::ADL::Scanner::Common::V_STRING.new 30 assert_instance_of OpenEhr::ADL::Scanner::Common::V_STRING,parser 31 result = parser.parse('"this is a string"') 32 assert_instance_of Yaparc::Result::OK, result 33 result = parser.parse('"en-us"') 34 assert_instance_of Yaparc::Result::OK, result 18 must "assert ADLScanner scanner scan ARCHETYPE_ID" do 19 lineno = @scanner.lineno 20 @scanner.scan("openEHR-EHR-OBSERVATION.body_mass_index.v1") do |sym, val| 21 assert_equal :V_ARCHETYPE_ID,sym 22 assert_instance_of OpenEHR::RM::Support::Identification::Archetype_ID,val 23 end 35 24 end 36 25 37 def test_V_REAL 38 parser = OpenEhr::ADL::Scanner::Common::V_REAL.new 39 assert_instance_of OpenEhr::ADL::Scanner::Common::V_REAL,parser 40 result = parser.parse('0.1') 41 assert_instance_of Yaparc::Result::OK, result 42 result = parser.parse('0.0..20000.0') 43 assert_instance_of Yaparc::Result::OK, result 44 assert_equal [:V_REAL, "0.0"], result.value 45 assert_equal "..20000.0", result.input 26 must "assert ADLScanner scanner scan white space and lineno unchanged" do 27 lineno = @scanner.lineno 28 @scanner.scan(" ") 29 assert_equal lineno, @scanner.lineno 46 30 end 47 31 48 def test_V_ISO8601_DURATION 49 parser = OpenEhr::ADL::Scanner::Common::V_ISO8601_DURATION.new 50 assert_instance_of OpenEhr::ADL::Scanner::Common::V_ISO8601_DURATION,parser 51 result = parser.parse('PT1M') 52 assert_instance_of Yaparc::Result::OK, result 53 result = parser.parse('PYMWDTHMS') 54 assert_instance_of Yaparc::Result::OK, result 55 assert_equal [:V_ISO8601_DURATION, "PYMWDTHMS"], result.value 32 must "assert ADLScanner scanner scan V_QUALIFIED_TERM_CODE_REF" do 33 @scanner.scan("[ICD10AM(1998)::F23]") do |sym, val| 34 assert_equal :V_QUALIFIED_TERM_CODE_REF,sym 35 assert_equal "ICD10AM(1998)::F23",val 36 end 37 end 38 end 39 40 class CADLScannerTest < Test::Unit::TestCase 41 def setup 42 @scanner = OpenEHR::ADL::Scanner::CADLScanner.new([:cadl], "filename") 56 43 end 57 44 58 def test_V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN 59 parser = OpenEhr::ADL::Scanner::CADL::V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN.new 60 assert_instance_of OpenEhr::ADL::Scanner::CADL::V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN,parser 61 result = parser.parse('yyyy-??-??T??:??:??') 62 assert_instance_of Yaparc::Result::OK, result 45 must "assert OpenEHR::ADL::Scanner::CADLScanner scanner instance" do 46 assert_instance_of OpenEHR::ADL::Scanner::CADLScanner, @scanner 63 47 end 64 48 65 def test_V_ISO8601_DATE_CONSTRAINT_PATTERN 66 parser = OpenEhr::ADL::Scanner::CADL::V_ISO8601_DATE_CONSTRAINT_PATTERN.new 67 assert_instance_of OpenEhr::ADL::Scanner::CADL::V_ISO8601_DATE_CONSTRAINT_PATTERN,parser 68 result = parser.parse('yyyy-mm-XX-dd') 69 assert_instance_of Yaparc::Result::OK, result 49 must "assert CADLScanner scanner scan V_ATTRIBUTE_IDENTIFIER" do 50 lineno = @scanner.lineno 51 @scanner.scan("identifier") do |sym, val| 52 assert_equal :V_ATTRIBUTE_IDENTIFIER, sym 53 assert_equal "identifier", val 54 end 55 assert_equal lineno, @scanner.lineno 70 56 end 71 57 72 def test_V_ISO8601_TIME_CONSTRAINT_PATTERN73 parser = OpenEhr::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN.new74 assert_instance_of OpenEhr::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN,parser75 result = parser.parse('hh:mm:ss:??')76 assert_instance_of Yaparc::Result::OK, result58 must "assert CADLScanner scanner scan reserved words" do 59 lineno = @scanner.lineno 60 @scanner.scan("then") do |sym, val| 61 assert_equal :SYM_THEN, sym 62 end 77 63 end 78 64 79 def test_dadl_reserved 80 parser = OpenEhr::ADL::Scanner::DADL::RootScanner.new 81 result = parser.parse('then') 82 assert_instance_of Yaparc::Result::OK, result 83 result = parser.parse('infinity') 84 assert_instance_of Yaparc::Result::OK, result 85 assert_equal [:SYM_INFINITY, :SYM_INFINITY], result.value 65 must "assert CADLScanner scanner scan V_QUALIFIED_TERM_CODE_REF" do 66 @scanner.scan("[ICD10AM(1998)::F23]") do |sym, val| 67 assert_equal :V_QUALIFIED_TERM_CODE_REF,sym 68 assert_equal "ICD10AM(1998)::F23",val 69 end 86 70 end 87 71 88 def test_cadl 89 parser = OpenEhr::ADL::Scanner::CADL::RootScanner.new 90 assert_instance_of OpenEhr::ADL::Scanner::CADL::RootScanner,parser 91 result = parser.parse('PT1M') 92 assert_instance_of Yaparc::Result::OK, result 93 assert_equal [:V_ISO8601_DURATION, "PT1M"], result.value 94 result = parser.parse('PYMWDTHMS') 95 assert_instance_of Yaparc::Result::OK, result 96 assert_equal [:V_ISO8601_DURATION, "PYMWDTHMS"], result.value 72 must "assert CADLScanner scanner scan V_ISO8601_DURATION" do 73 @scanner.scan("PT1M") do |sym, val| 74 assert_equal :V_ISO8601_DURATION,sym 75 assert_equal "PT1M",val 76 end 77 end 78 end 79 80 class DADLScannerTest < Test::Unit::TestCase 81 def setup 82 @scanner = OpenEHR::ADL::Scanner::DADLScanner.new([:dadl], "filename") 97 83 end 98 84 99 def test_cadl_reserved 100 parser = OpenEhr::ADL::Scanner::CADL::RootScanner.new 101 result = parser.parse('then') 102 assert_instance_of Yaparc::Result::OK, result 103 result = parser.parse('cardinality') 104 assert_instance_of Yaparc::Result::OK, result 105 assert_equal [:SYM_CARDINALITY, :SYM_CARDINALITY], result.value 106 result = parser.parse('ordered') 107 assert_instance_of Yaparc::Result::OK, result 108 assert_equal "", result.input 109 assert_equal [:SYM_ORDERED, :SYM_ORDERED], result.value 85 must "assert DADLScanner scanner scan V_QUALIFIED_TERM_CODE_REF" do 86 @scanner.scan("[ICD10AM(1998)::F23]") do |sym, val| 87 assert_equal :V_QUALIFIED_TERM_CODE_REF,sym 88 assert_equal "ICD10AM(1998)::F23",val 89 end 110 90 end 111 91 112 92 must "assert DADLScanner scanner scan V_ISO8601_EXTENDED_DATE" do 93 @scanner.scan("2005-10-10") do |sym, val| 94 assert_equal :V_ISO8601_EXTENDED_DATE,sym 95 assert_equal "2005-10-10",val 96 end 97 end 98 99 must "assert DADLScanner scanner scan V_STRING" do 100 @scanner.scan("\"string\"") do |sym, val| 101 assert_equal :V_STRING,sym 102 assert_equal "string",val 103 end 104 end 113 105 end
Note:
See TracChangeset
for help on using the changeset viewer.