source: ruby/trunk/adl_parser/tests/scanner_test.rb@ 19

Last change on this file since 19 was 19, checked in by Tatsukawa, Akimichi, 16 years ago

successful parsing 25 archtypes

File size: 4.0 KB
Line 
1require 'lib/scanner.rb'
2require 'test/unit'
3
4class YaparcParserTest < Test::Unit::TestCase
5 def test_RootScanner
6 parser = OpenEHR::ADL::Scanner::DADL::RootScanner.new
7 assert_instance_of OpenEHR::ADL::Scanner::DADL::RootScanner,parser
8 result = parser.parse('')
9 end
10
11 def test_V_LOCAL_TERM_CODE_REF
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
16 end
17
18 def test_V_QUALIFIED_TERM_CODE_REF
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
25 end
26
27 def test_V_STRING
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
34 end
35
36 def test_V_REAL
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
45 end
46
47 def test_V_ISO8601_DURATION
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 end
53
54 def test_V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN
55 parser = OpenEHR::ADL::Scanner::CADL::V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN.new
56 assert_instance_of OpenEHR::ADL::Scanner::CADL::V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN,parser
57 result = parser.parse('yyyy-??-??T??:??:??')
58 assert_instance_of Yaparc::Result::OK, result
59 end
60
61 def test_V_ISO8601_DATE_CONSTRAINT_PATTERN
62 parser = OpenEHR::ADL::Scanner::CADL::V_ISO8601_DATE_CONSTRAINT_PATTERN.new
63 assert_instance_of OpenEHR::ADL::Scanner::CADL::V_ISO8601_DATE_CONSTRAINT_PATTERN,parser
64 result = parser.parse('yyyy-mm-XX-dd')
65 assert_instance_of Yaparc::Result::OK, result
66 end
67
68 def test_V_ISO8601_TIME_CONSTRAINT_PATTERN
69 parser = OpenEHR::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN.new
70 assert_instance_of OpenEHR::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN,parser
71 result = parser.parse('hh:mm:ss:??')
72 assert_instance_of Yaparc::Result::OK, result
73 end
74
75 def test_dadl_reserved
76 parser = OpenEHR::ADL::Scanner::DADL::RootScanner.new
77 result = parser.parse('then')
78 assert_instance_of Yaparc::Result::OK, result
79 result = parser.parse('infinity')
80 assert_instance_of Yaparc::Result::OK, result
81 assert_equal [:SYM_INFINITY, :SYM_INFINITY], result.value
82 end
83
84 def test_cadl
85 parser = OpenEHR::ADL::Scanner::CADL::RootScanner.new
86 assert_instance_of OpenEHR::ADL::Scanner::CADL::RootScanner,parser
87 result = parser.parse('PT1M')
88 assert_instance_of Yaparc::Result::OK, result
89 assert_equal [:V_ISO8601_DURATION, "PT1M"], result.value
90 end
91
92 def test_cadl_reserved
93 parser = OpenEHR::ADL::Scanner::CADL::RootScanner.new
94 result = parser.parse('then')
95 assert_instance_of Yaparc::Result::OK, result
96 result = parser.parse('cardinality')
97 assert_instance_of Yaparc::Result::OK, result
98 assert_equal [:SYM_CARDINALITY, :SYM_CARDINALITY], result.value
99 result = parser.parse('ordered')
100 assert_instance_of Yaparc::Result::OK, result
101 assert_equal "", result.input
102 assert_equal [:SYM_ORDERED, :SYM_ORDERED], result.value
103 end
104
105
106end
Note: See TracBrowser for help on using the repository browser.