1 | require 'lib/adl_parser.rb'
|
---|
2 | #require 'lib/scanner.rb'
|
---|
3 | require 'test/unit'
|
---|
4 |
|
---|
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('')
|
---|
10 | end
|
---|
11 |
|
---|
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
|
---|
17 | end
|
---|
18 |
|
---|
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
|
---|
26 | end
|
---|
27 |
|
---|
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
|
---|
35 | end
|
---|
36 |
|
---|
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
|
---|
46 | end
|
---|
47 |
|
---|
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
|
---|
56 | end
|
---|
57 |
|
---|
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
|
---|
63 | end
|
---|
64 |
|
---|
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
|
---|
70 | end
|
---|
71 |
|
---|
72 | def test_V_ISO8601_TIME_CONSTRAINT_PATTERN
|
---|
73 | parser = OpenEHR::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN.new
|
---|
74 | assert_instance_of OpenEHR::ADL::Scanner::CADL::V_ISO8601_TIME_CONSTRAINT_PATTERN,parser
|
---|
75 | result = parser.parse('hh:mm:ss:??')
|
---|
76 | assert_instance_of Yaparc::Result::OK, result
|
---|
77 | end
|
---|
78 |
|
---|
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
|
---|
86 | end
|
---|
87 |
|
---|
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
|
---|
97 | end
|
---|
98 |
|
---|
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
|
---|
110 | end
|
---|
111 |
|
---|
112 |
|
---|
113 | end
|
---|