[17] | 1 | require 'lib/scanner.rb'
|
---|
| 2 | require 'test/unit'
|
---|
| 3 |
|
---|
| 4 | class YaparcParserTest < Test::Unit::TestCase
|
---|
| 5 | def test_RootScanner
|
---|
[168] | 6 | parser = OpenEHR::ADL::Scanner::DADL::RootScanner.new
|
---|
| 7 | assert_instance_of OpenEHR::ADL::Scanner::DADL::RootScanner,parser
|
---|
[17] | 8 | result = parser.parse('')
|
---|
| 9 | end
|
---|
| 10 |
|
---|
| 11 | def test_V_LOCAL_TERM_CODE_REF
|
---|
[168] | 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 |
|
---|
| 18 | def test_V_QUALIFIED_TERM_CODE_REF
|
---|
[168] | 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 |
|
---|
| 27 | def test_V_STRING
|
---|
[168] | 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 |
|
---|
| 36 | def test_V_REAL
|
---|
[168] | 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 |
|
---|
[19] | 47 | def test_V_ISO8601_DURATION
|
---|
[168] | 48 | parser = OpenEHR::ADL::Scanner::Common::V_ISO8601_DURATION.new
|
---|
| 49 | assert_instance_of OpenEHR::ADL::Scanner::Common::V_ISO8601_DURATION,parser
|
---|
[19] | 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 |
|
---|
| 57 | def test_V_ISO8601_DATE_TIME_CONSTRAINT_PATTERN
|
---|
[168] | 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
|
---|
[19] | 60 | result = parser.parse('yyyy-??-??T??:??:??')
|
---|
| 61 | assert_instance_of Yaparc::Result::OK, result
|
---|
| 62 | end
|
---|
| 63 |
|
---|
| 64 | def test_V_ISO8601_DATE_CONSTRAINT_PATTERN
|
---|
[168] | 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
|
---|
[19] | 67 | result = parser.parse('yyyy-mm-XX-dd')
|
---|
| 68 | assert_instance_of Yaparc::Result::OK, result
|
---|
| 69 | end
|
---|
| 70 |
|
---|
| 71 | def test_V_ISO8601_TIME_CONSTRAINT_PATTERN
|
---|
[168] | 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
|
---|
[19] | 74 | result = parser.parse('hh:mm:ss:??')
|
---|
| 75 | assert_instance_of Yaparc::Result::OK, result
|
---|
| 76 | end
|
---|
| 77 |
|
---|
| 78 | def test_dadl_reserved
|
---|
[168] | 79 | parser = OpenEHR::ADL::Scanner::DADL::RootScanner.new
|
---|
[19] | 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 |
|
---|
| 87 | def test_cadl
|
---|
[168] | 88 | parser = OpenEHR::ADL::Scanner::CADL::RootScanner.new
|
---|
| 89 | assert_instance_of OpenEHR::ADL::Scanner::CADL::RootScanner,parser
|
---|
[19] | 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 |
|
---|
| 98 | def test_cadl_reserved
|
---|
[168] | 99 | parser = OpenEHR::ADL::Scanner::CADL::RootScanner.new
|
---|
[19] | 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
|
---|
| 110 |
|
---|
| 111 |
|
---|
[17] | 112 | end
|
---|