Changeset 283 for ruby/trunk/lib/adl_parser/test/scanner_test.rb
- Timestamp:
- Sep 20, 2009, 1:20:48 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ruby/trunk/lib/adl_parser/test/scanner_test.rb
r261 r283 1 1 require File.dirname(__FILE__) + '/test_helper.rb' 2 2 3 class YaparcParserTest < Test::Unit::TestCase 4 must "assert root scanner instance" do 5 parser = OpenEHR::ADL::Scanner::DADL::RootScanner.new 6 assert_instance_of OpenEHR::ADL::Scanner::DADL::RootScanner,parser 7 result = parser.parse('') 3 class ADLScannerTest < Test::Unit::TestCase 4 def setup 5 @scanner = OpenEHR::ADL::Scanner::ADLScanner.new([:adl], "filename") 8 6 end 9 7 10 # \[{ALPHANUM}{NAMECHAR}*\] 11 must "assert V_LOCAL_TERM_CODE_REF scanner is properly working" do 12 parser = OpenEHR::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF.new 13 assert_instance_of OpenEHR::ADL::Scanner::Common::V_LOCAL_TERM_CODE_REF,parser 14 result = parser.parse('[en-us]') 15 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 16 10 end 17 11 18 must "assert V_QUALIFIED_TERM_CODE_REF scanner is properly working" do 19 parser = OpenEHR::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF.new 20 assert_instance_of OpenEHR::ADL::Scanner::Common::V_QUALIFIED_TERM_CODE_REF,parser 21 result = parser.parse('[ISO_639::en]') 22 assert_instance_of Yaparc::Result::OK, result 23 result = parser.parse('[ISO_639::en-us]') 24 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 25 16 end 26 17 27 must "assert V_STRING scanner is properly working" do 28 parser = OpenEHR::ADL::Scanner::Common::V_STRING.new 29 assert_instance_of OpenEHR::ADL::Scanner::Common::V_STRING,parser 30 result = parser.parse('"this is a string"') 31 assert_instance_of Yaparc::Result::OK, result 32 result = parser.parse('"en-us"') 33 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 34 24 end 35 25 36 must "assert V_REAL scanner is properly working" do 37 parser = OpenEHR::ADL::Scanner::Common::V_REAL.new 38 assert_instance_of OpenEHR::ADL::Scanner::Common::V_REAL,parser 39 result = parser.parse('0.1') 40 assert_instance_of Yaparc::Result::OK, result 41 result = parser.parse('0.0..20000.0') 42 assert_instance_of Yaparc::Result::OK, result 43 assert_equal [:V_REAL, "0.0"], result.value 44 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 45 30 end 46 31 47 must "assert V_ISO8601_DURATION scanner is properly working" do 48 parser = OpenEHR::ADL::Scanner::Common::V_ISO8601_DURATION.new 49 assert_instance_of OpenEHR::ADL::Scanner::Common::V_ISO8601_DURATION,parser 50 result = parser.parse('PT1M') 51 assert_instance_of Yaparc::Result::OK, result 52 result = parser.parse('PYMWDTHMS') 53 assert_instance_of Yaparc::Result::OK, result 54 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") 55 43 end 56 44 57 must "assert V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN scanner is properly working" do 58 parser = OpenEHR::ADL::Scanner::CADL::V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN.new 59 assert_instance_of OpenEHR::ADL::Scanner::CADL::V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN,parser 60 result = parser.parse('yyyy-??-??T??:??:??') 61 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 62 47 end 63 48 64 must "assert V_ISO8601_DATE_CONSTRAINT_PATTERN scanner is properly working" do 65 parser = OpenEHR::ADL::Scanner::CADL::V_ISO8601_DATE_CONSTRAINT_PATTERN.new 66 assert_instance_of OpenEHR::ADL::Scanner::CADL::V_ISO8601_DATE_CONSTRAINT_PATTERN,parser 67 result = parser.parse('yyyy-mm-XX-dd') 68 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 69 56 end 70 57 71 must "assert V_ISO8601_TIME_CONSTRAINT_PATTERN scanner is properly working" do72 parser = OpenEHR::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN.new73 assert_instance_of OpenEHR::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN,parser74 result = parser.parse('hh:mm:ss:??')75 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 76 63 end 77 64 78 must "assert reserved words in dADL scanner is properly working" do 79 parser = OpenEHR::ADL::Scanner::DADL::RootScanner.new 80 result = parser.parse('then') 81 assert_instance_of Yaparc::Result::OK, result 82 result = parser.parse('infinity') 83 assert_instance_of Yaparc::Result::OK, result 84 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 85 70 end 86 71 87 must "assert reserved words in cADL scanner is properly working" do 88 parser = OpenEHR::ADL::Scanner::CADL::RootScanner.new 89 assert_instance_of OpenEHR::ADL::Scanner::CADL::RootScanner,parser 90 result = parser.parse('PT1M') 91 assert_instance_of Yaparc::Result::OK, result 92 assert_equal [:V_ISO8601_DURATION, "PT1M"], result.value 93 result = parser.parse('PYMWDTHMS') 94 assert_instance_of Yaparc::Result::OK, result 95 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") 96 83 end 97 84 98 must "assert other reserved words in cADL scanner is properly working" do 99 parser = OpenEHR::ADL::Scanner::CADL::RootScanner.new 100 result = parser.parse('then') 101 assert_instance_of Yaparc::Result::OK, result 102 result = parser.parse('cardinality') 103 assert_instance_of Yaparc::Result::OK, result 104 assert_equal [:SYM_CARDINALITY, :SYM_CARDINALITY], result.value 105 result = parser.parse('ordered') 106 assert_instance_of Yaparc::Result::OK, result 107 assert_equal "", result.input 108 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 90 end 91 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 109 104 end 110 105 end
Note:
See TracChangeset
for help on using the changeset viewer.