source: ruby/trunk/lib/adl_parser/test/scanner_test.rb@ 261

Last change on this file since 261 was 261, checked in by Tatsukawa, Akimichi, 15 years ago

renamed scanner.rb to adl_scanner.rb

File size: 4.8 KB
RevLine 
[261]1require File.dirname(__FILE__) + '/test_helper.rb'
[17]2
3class YaparcParserTest < Test::Unit::TestCase
[261]4 must "assert root scanner instance" do
[17]5 parser = OpenEHR::ADL::Scanner::DADL::RootScanner.new
6 assert_instance_of OpenEHR::ADL::Scanner::DADL::RootScanner,parser
7 result = parser.parse('')
8 end
9
[261]10 # \[{ALPHANUM}{NAMECHAR}*\]
11 must "assert V_LOCAL_TERM_CODE_REF scanner is properly working" do
[19]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
[18]14 result = parser.parse('[en-us]')
15 assert_instance_of Yaparc::Result::OK, result
[17]16 end
[18]17
[261]18 must "assert V_QUALIFIED_TERM_CODE_REF scanner is properly working" do
[19]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
[18]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
25 end
26
[261]27 must "assert V_STRING scanner is properly working" do
[19]28 parser = OpenEHR::ADL::Scanner::Common::V_STRING.new
29 assert_instance_of OpenEHR::ADL::Scanner::Common::V_STRING,parser
[18]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
34 end
35
[261]36 must "assert V_REAL scanner is properly working" do
[19]37 parser = OpenEHR::ADL::Scanner::Common::V_REAL.new
38 assert_instance_of OpenEHR::ADL::Scanner::Common::V_REAL,parser
[18]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
[19]45 end
[18]46
[261]47 must "assert V_ISO8601_DURATION scanner is properly working" do
[19]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
[20]52 result = parser.parse('PYMWDTHMS')
53 assert_instance_of Yaparc::Result::OK, result
54 assert_equal [:V_ISO8601_DURATION, "PYMWDTHMS"], result.value
[18]55 end
[19]56
[261]57 must "assert V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN scanner is properly working" do
[19]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
62 end
63
[261]64 must "assert V_ISO8601_DATE_CONSTRAINT_PATTERN scanner is properly working" do
[19]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
69 end
70
[261]71 must "assert V_ISO8601_TIME_CONSTRAINT_PATTERN scanner is properly working" do
[19]72 parser = OpenEHR::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN.new
73 assert_instance_of OpenEHR::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN,parser
74 result = parser.parse('hh:mm:ss:??')
75 assert_instance_of Yaparc::Result::OK, result
76 end
77
[261]78 must "assert reserved words in dADL scanner is properly working" do
[19]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
85 end
86
[261]87 must "assert reserved words in cADL scanner is properly working" do
[19]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
[20]93 result = parser.parse('PYMWDTHMS')
94 assert_instance_of Yaparc::Result::OK, result
95 assert_equal [:V_ISO8601_DURATION, "PYMWDTHMS"], result.value
[19]96 end
97
[261]98 must "assert other reserved words in cADL scanner is properly working" do
[19]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
109 end
[17]110end
Note: See TracBrowser for help on using the repository browser.