rtext 0.5.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -108,7 +108,7 @@ def test_root_after_unlabled
108
108
  c = build_context TestMM, <<-END
109
109
  TestNode "bla"|
110
110
  END
111
- assert_context c, :prefix => "bla", :feature => "unlabled", :in_array => false, :in_block => false
111
+ assert_context c, :prefix => "\"bla\"", :feature => "unlabled", :in_array => false, :in_block => false
112
112
  assert(c.element.is_a?(TestMM::TestNode))
113
113
  assert_nil(c.element.unlabled)
114
114
  end
@@ -117,7 +117,7 @@ def test_root_after_unlabled_string_with_comma
117
117
  c = build_context TestMM, <<-END
118
118
  TestNode "a,b"|
119
119
  END
120
- assert_context c, :prefix => "a,b", :feature => "unlabled", :in_array => false, :in_block => false
120
+ assert_context c, :prefix => "\"a,b\"", :feature => "unlabled", :in_array => false, :in_block => false
121
121
  assert(c.element.is_a?(TestMM::TestNode))
122
122
  assert_nil(c.element.unlabled)
123
123
  end
@@ -126,7 +126,7 @@ def test_root_after_unlabled_string_with_quoted_quote
126
126
  c = build_context TestMM, <<-END
127
127
  TestNode "a,\\"b"|
128
128
  END
129
- assert_context c, :prefix => "a,\"b", :feature => "unlabled", :in_array => false, :in_block => false
129
+ assert_context c, :prefix => "\"a,\\\"b\"", :feature => "unlabled", :in_array => false, :in_block => false
130
130
  assert(c.element.is_a?(TestMM::TestNode))
131
131
  assert_nil(c.element.unlabled)
132
132
  end
@@ -218,7 +218,7 @@ def test_root_unlabled_array_first_value_quoted
218
218
  c = build_context TestMM, <<-END
219
219
  TestNode "bla", ["a"|
220
220
  END
221
- assert_context c, :prefix => "a", :feature => "unlabled_array", :in_array => true, :in_block => false
221
+ assert_context c, :prefix => "\"a\"", :feature => "unlabled_array", :in_array => true, :in_block => false
222
222
  assert(c.element.is_a?(TestMM::TestNode))
223
223
  assert_equal("bla", c.element.unlabled)
224
224
  assert_equal([], c.element.unlabled_array)
@@ -270,7 +270,7 @@ def test_root_unlabled_array_second_value_quoted
270
270
  c = build_context TestMM, <<-END
271
271
  TestNode "bla", ["a", "b"|
272
272
  END
273
- assert_context c, :prefix => "b", :feature => "unlabled_array", :in_array => true, :in_block => false
273
+ assert_context c, :prefix => "\"b\"", :feature => "unlabled_array", :in_array => true, :in_block => false
274
274
  assert(c.element.is_a?(TestMM::TestNode))
275
275
  assert_equal("bla", c.element.unlabled)
276
276
  assert_equal(["a"], c.element.unlabled_array)
@@ -330,7 +330,7 @@ def test_root_labled_string_value
330
330
  c = build_context TestMM, <<-END
331
331
  TestNode text: "a,b"|
332
332
  END
333
- assert_context c, :prefix => "a,b", :feature => "text", :in_array => false, :in_block => false, :after_label => true
333
+ assert_context c, :prefix => "\"a,b\"", :feature => "text", :in_array => false, :in_block => false, :after_label => true
334
334
  assert(c.element.is_a?(TestMM::TestNode))
335
335
  assert_nil(c.element.text)
336
336
  end
@@ -643,7 +643,7 @@ def test_in_cmd_in_array_after_second_string_value
643
643
  TestNode nums: 3 {
644
644
  TestNode strings: ["a,b", "c,d"|
645
645
  END
646
- assert_context c, :prefix => "c,d", :feature => "strings", :in_array => true, :in_block => false, :after_label => true
646
+ assert_context c, :prefix => "\"c,d\"", :feature => "strings", :in_array => true, :in_block => false, :after_label => true
647
647
  assert_simple_model(c.element)
648
648
  assert_equal(["a,b"], c.element.strings)
649
649
  end
@@ -2,6 +2,7 @@
2
2
  $:.unshift File.join(File.dirname(__FILE__),"..","lib")
3
3
 
4
4
  require 'test/unit'
5
+ require 'bigdecimal'
5
6
  require 'rgen/environment'
6
7
  require 'rgen/metamodel_builder'
7
8
  require 'rtext/instantiator'
@@ -42,12 +43,13 @@ class InstantiatorTest < Test::Unit::TestCase
42
43
  TestNode.contains_one 'singleChild2b', TestNode2, 'parentB'
43
44
  end
44
45
 
45
- module TestMMLinenoFilename
46
+ module TestMMLinenoFilenameFragment
46
47
  extend RGen::MetamodelBuilder::ModuleExtension
47
48
  class TestNode < RGen::MetamodelBuilder::MMBase
48
49
  has_attr 'text', String
49
50
  has_attr 'lineno', Integer
50
51
  has_attr 'filename', String
52
+ has_attr 'fragmentr', String
51
53
  contains_many 'childs', TestNode, 'parent'
52
54
  end
53
55
  end
@@ -174,7 +176,7 @@ class InstantiatorTest < Test::Unit::TestCase
174
176
  TestNode text: "node3"
175
177
  }
176
178
  TestNode text: "node4"
177
- ), TestMMLinenoFilename, :line_number_attribute => "lineno")
179
+ ), TestMMLinenoFilenameFragment, :line_number_attribute => "lineno")
178
180
  assert_no_problems(problems)
179
181
  assert_equal 2, env.find(:text => "node1").first.lineno
180
182
  assert_equal 3, env.find(:text => "node2").first.lineno
@@ -182,6 +184,14 @@ class InstantiatorTest < Test::Unit::TestCase
182
184
  assert_equal 8, env.find(:text => "node4").first.lineno
183
185
  end
184
186
 
187
+ def test_missing_line_number_setter
188
+ env, problems = instantiate(%Q(
189
+ TestNode text: A
190
+ ), TestMMLinenoFilenameFragment, :line_number_attribute => "wrong_attribute_name")
191
+ assert_no_problems(problems)
192
+ assert_nil env.elements.first.lineno
193
+ end
194
+
185
195
  def test_root_elements
186
196
  root_elements = []
187
197
  env, problems = instantiate(%Q(
@@ -205,10 +215,33 @@ class InstantiatorTest < Test::Unit::TestCase
205
215
  def test_file_name_setter
206
216
  env, problems = instantiate(%Q(
207
217
  TestNode text: A
208
- ), TestMMLinenoFilename, :file_name => "some_file", :file_name_attribute => "filename")
218
+ ), TestMMLinenoFilenameFragment, :file_name => "some_file", :file_name_attribute => "filename")
209
219
  assert_equal "some_file", env.elements.first.filename
210
220
  end
211
221
 
222
+ def test_missing_file_name_setter
223
+ env, problems = instantiate(%Q(
224
+ TestNode text: A
225
+ ), TestMMLinenoFilenameFragment, :file_name => "some_file", :file_name_attribute => "wrong_attribute_name")
226
+ assert_nil env.elements.first.filename
227
+ end
228
+
229
+ def test_fragment_ref_setter
230
+ the_ref = "is a string here but would normally be an RGen fragment"
231
+ env, problems = instantiate(%Q(
232
+ TestNode text: A
233
+ ), TestMMLinenoFilenameFragment, :fragment_ref => the_ref, :fragment_ref_attribute => "fragmentr")
234
+ assert_equal the_ref.object_id, env.elements.first.fragmentr.object_id
235
+ end
236
+
237
+ def test_missing_fragment_ref_setter
238
+ the_ref = "is a string here but would normally be an RGen fragment"
239
+ env, problems = instantiate(%Q(
240
+ TestNode text: A
241
+ ), TestMMLinenoFilenameFragment, :fragment_ref => the_ref, :fragment_ref_attribute => "wrong_attribute_name")
242
+ assert_nil env.elements.first.fragmentr
243
+ end
244
+
212
245
  #
213
246
  # children with role
214
247
  #
@@ -375,6 +408,7 @@ class InstantiatorTest < Test::Unit::TestCase
375
408
  ]
376
409
  assert_equal ref_targets, env.find(:text => "root").first.childs.collect{|c| c.related.targetIdentifier}
377
410
  assert_equal ref_targets, unresolved_refs.collect{|ur| ur.proxy.targetIdentifier}
411
+ assert unresolved_refs.all?{|ur| ur.feature_name == "related"}
378
412
  end
379
413
 
380
414
  def test_references_many
@@ -502,28 +536,28 @@ class InstantiatorTest < Test::Unit::TestCase
502
536
  env, problems = instantiate(%Q(
503
537
  TestNode text: "some text" {
504
538
  ), TestMM)
505
- assert_problems([/unexpected end of file, expected \}/i], problems)
539
+ assert_problems([[/unexpected end of file, expected \}/i, 2]], problems)
506
540
  end
507
541
 
508
542
  def test_unknown_command
509
543
  env, problems = instantiate(%Q(
510
544
  NotDefined
511
545
  ), TestMM)
512
- assert_problems([/unknown command 'NotDefined'/i], problems)
546
+ assert_problems([[/unknown command 'NotDefined'/i, 2]], problems)
513
547
  end
514
548
 
515
549
  def test_unknown_command_abstract
516
550
  env, problems = instantiate(%Q(
517
551
  TestNode
518
552
  ), TestMMAbstract)
519
- assert_problems([/unknown command 'TestNode'/i], problems)
553
+ assert_problems([[/unknown command 'TestNode'/i, 2]], problems)
520
554
  end
521
555
 
522
556
  def test_unexpected_unlabled_argument
523
557
  env, problems = instantiate(%Q(
524
558
  TestNode "more text"
525
559
  ), TestMM)
526
- assert_problems([/unexpected unlabled argument, 0 unlabled arguments expected/i], problems)
560
+ assert_problems([[/unexpected unlabled argument, 0 unlabled arguments expected/i, 2]], problems)
527
561
  end
528
562
 
529
563
  def test_unknown_child_role
@@ -533,7 +567,7 @@ class InstantiatorTest < Test::Unit::TestCase
533
567
  TestNode
534
568
  }
535
569
  ), TestMM)
536
- assert_problems([/unknown child role 'notdefined'/i], problems)
570
+ assert_problems([[/unknown child role 'notdefined'/i, 3]], problems)
537
571
  end
538
572
 
539
573
  def test_not_a_child_role
@@ -546,8 +580,8 @@ class InstantiatorTest < Test::Unit::TestCase
546
580
  }
547
581
  ), TestMM)
548
582
  assert_problems([
549
- /role 'text' can not take child elements/i,
550
- /role 'others' can not take child elements/i
583
+ [/role 'text' can not take child elements/i, 3],
584
+ [/role 'others' can not take child elements/i, 5]
551
585
  ], problems)
552
586
  end
553
587
 
@@ -561,7 +595,7 @@ class InstantiatorTest < Test::Unit::TestCase
561
595
  }
562
596
  ), TestMM2)
563
597
  assert_problems([
564
- /only one child allowed in role 'singleChild'/i,
598
+ [/only one child allowed in role 'singleChild'/i, 5]
565
599
  ], problems)
566
600
  end
567
601
 
@@ -570,12 +604,14 @@ class InstantiatorTest < Test::Unit::TestCase
570
604
  TestNode {
571
605
  singleChild:
572
606
  TestNode
607
+ singleChild: [
608
+ ]
573
609
  singleChild:
574
610
  TestNode
575
611
  }
576
612
  ), TestMM2)
577
613
  assert_problems([
578
- /only one child allowed in role 'singleChild'/i,
614
+ [/only one child allowed in role 'singleChild'/i, 8]
579
615
  ], problems)
580
616
  end
581
617
 
@@ -587,7 +623,7 @@ class InstantiatorTest < Test::Unit::TestCase
587
623
  }
588
624
  ), TestMM2)
589
625
  assert_problems([
590
- /role 'singleChild' can not take a TestNode2, expected TestNode/i,
626
+ [/role 'singleChild' can not take a TestNode2, expected TestNode/i, 4]
591
627
  ], problems)
592
628
  end
593
629
 
@@ -598,7 +634,7 @@ class InstantiatorTest < Test::Unit::TestCase
598
634
  }
599
635
  ), TestMM2)
600
636
  assert_problems([
601
- /unexpected \}, expected identifier/i
637
+ [/unexpected \}, expected identifier/i, 4]
602
638
  ], problems)
603
639
  end
604
640
 
@@ -609,7 +645,7 @@ class InstantiatorTest < Test::Unit::TestCase
609
645
  }
610
646
  ), TestMM2)
611
647
  assert_problems([
612
- /command 'TestNode3' can not be used in this context/i,
648
+ [/command 'TestNode3' can not be used in this context/i, 3]
613
649
  ], problems)
614
650
  end
615
651
 
@@ -620,7 +656,7 @@ class InstantiatorTest < Test::Unit::TestCase
620
656
  }
621
657
  ), TestMM2)
622
658
  assert_problems([
623
- /role of element is ambiguous, use a role label/i,
659
+ [/role of element is ambiguous, use a role label/i, 3]
624
660
  ], problems)
625
661
  end
626
662
 
@@ -641,7 +677,7 @@ class InstantiatorTest < Test::Unit::TestCase
641
677
  }
642
678
  ), TestMM2)
643
679
  assert_problems([
644
- /only one child allowed in role 'singleChild'/i,
680
+ [/only one child allowed in role 'singleChild'/i, 4]
645
681
  ], problems)
646
682
  end
647
683
 
@@ -649,35 +685,35 @@ class InstantiatorTest < Test::Unit::TestCase
649
685
  env, problems = instantiate(%Q(
650
686
  TestNode unknown: "some text"
651
687
  ), TestMM)
652
- assert_problems([/unknown argument 'unknown'/i], problems)
688
+ assert_problems([[/unknown argument 'unknown'/i, 2]], problems)
653
689
  end
654
690
 
655
691
  def test_attribute_in_child_reference
656
692
  env, problems = instantiate(%Q(
657
693
  TestNode singleChild: "some text"
658
694
  ), TestMM2)
659
- assert_problems([/argument 'singleChild' can only take child elements/i], problems)
695
+ assert_problems([[/argument 'singleChild' can only take child elements/i, 2]], problems)
660
696
  end
661
697
 
662
698
  def test_arguments_duplicate
663
699
  env, problems = instantiate(%Q(
664
700
  TestNode text: "some text", text: "more text"
665
701
  ), TestMM)
666
- assert_problems([/argument 'text' already defined/i], problems)
702
+ assert_problems([[/argument 'text' already defined/i, 2]], problems)
667
703
  end
668
704
 
669
705
  def test_unlabled_arguments_duplicate
670
706
  env, problems = instantiate(%Q(
671
707
  TestNode text: "some text", "more text"
672
708
  ), TestMM, :unlabled_arguments => proc {|c| ["text"]})
673
- assert_problems([/argument 'text' already defined/i], problems)
709
+ assert_problems([[/argument 'text' already defined/i, 2]], problems)
674
710
  end
675
711
 
676
712
  def test_multiple_arguments_in_non_many_attribute
677
713
  env, problems = instantiate(%Q(
678
714
  TestNode text: ["text1", "text2"]
679
715
  ), TestMM)
680
- assert_problems([/argument 'text' can take only one value/i], problems)
716
+ assert_problems([[/argument 'text' can take only one value/i, 2]], problems)
681
717
  end
682
718
 
683
719
  def test_wrong_argument_type
@@ -693,15 +729,15 @@ class InstantiatorTest < Test::Unit::TestCase
693
729
  TestNode related: 1
694
730
  ), TestMM)
695
731
  assert_problems([
696
- /argument 'text' can not take a integer, expected string/i,
697
- /argument 'integer' can not take a string, expected integer/i,
698
- /argument 'integer' can not take a boolean, expected integer/i,
699
- /argument 'integer' can not take a float, expected integer/i,
700
- /argument 'integer' can not take a identifier, expected integer/i,
701
- /argument 'integer' can not take a reference, expected integer/i,
702
- /argument 'enum' can not take a integer, expected identifier/i,
703
- /argument 'enum' can not take value x, expected A, B/i,
704
- /argument 'related' can not take a integer, expected reference, identifier/i
732
+ [/argument 'text' can not take a integer, expected string/i, 2],
733
+ [/argument 'integer' can not take a string, expected integer/i, 3],
734
+ [/argument 'integer' can not take a boolean, expected integer/i, 4],
735
+ [/argument 'integer' can not take a float, expected integer/i, 5],
736
+ [/argument 'integer' can not take a identifier, expected integer/i, 6],
737
+ [/argument 'integer' can not take a reference, expected integer/i, 7],
738
+ [/argument 'enum' can not take a integer, expected identifier/i, 8],
739
+ [/argument 'enum' can not take value x, expected A, B/i, 9],
740
+ [/argument 'related' can not take a integer, expected reference, identifier/i, 10]
705
741
  ], problems)
706
742
  end
707
743
 
@@ -710,14 +746,14 @@ class InstantiatorTest < Test::Unit::TestCase
710
746
  TestNode
711
747
  }
712
748
  ), TestMM)
713
- assert_problems([/unexpected \}, expected identifier/i], problems)
749
+ assert_problems([[/unexpected \}, expected identifier/i, 3]], problems)
714
750
  end
715
751
 
716
752
  def test_invalid_root
717
753
  env, problems = instantiate(%Q(
718
754
  NonRootClass
719
755
  ), TestMMNonRootClass)
720
- assert_problems([/command 'NonRootClass' can not be used on root level/i], problems)
756
+ assert_problems([[/command 'NonRootClass' can not be used on root level/i, 2]], problems)
721
757
  end
722
758
 
723
759
  #
@@ -763,7 +799,7 @@ class InstantiatorTest < Test::Unit::TestCase
763
799
  assert_equal [1], root_elements[0].nums
764
800
  assert_equal "bla", root_elements[0].text
765
801
  assert_problems([
766
- /unexpected label .*, expected ,/i,
802
+ [/unexpected label .*, expected ,/i, 2],
767
803
  ], problems)
768
804
  end
769
805
 
@@ -775,8 +811,8 @@ class InstantiatorTest < Test::Unit::TestCase
775
811
  assert_equal 1, root_elements.size
776
812
  assert_equal [1], root_elements[0].nums
777
813
  assert_problems([
778
- /unexpected string 'bla', expected ,/i,
779
- /unexpected unlabled argument/i
814
+ [/unexpected string 'bla', expected ,/i, 2],
815
+ [/unexpected unlabled argument/i, 2]
780
816
  ], problems)
781
817
  end
782
818
 
@@ -917,12 +953,12 @@ class InstantiatorTest < Test::Unit::TestCase
917
953
  assert_equal [1], root_elements[0].nums
918
954
  assert_equal "bla", root_elements[1].text
919
955
  assert_equal [1], root_elements[1].nums
956
+ assert_equal "bla", root_elements[2].text
920
957
  assert_equal [1, 3], root_elements[3].nums
921
958
  assert_problems([
922
959
  [/parse error on token '\*'/i, 2],
923
960
  [/parse error on token '\*'/i, 3],
924
- [/parse error on token '\?text:'/i, 4],
925
- [/unexpected unlabled argument/i, 4],
961
+ [/parse error on token '\?'/i, 4],
926
962
  [/parse error on token '\*'/i, 5],
927
963
  ], problems)
928
964
  end
@@ -975,7 +1011,7 @@ class InstantiatorTest < Test::Unit::TestCase
975
1011
  ], problems)
976
1012
  end
977
1013
 
978
- def test_unclosed_bracket
1014
+ def test_unclosed_child_bracket
979
1015
  root_elements = []
980
1016
  env, problems = instantiate(%Q(
981
1017
  TestNode {
@@ -1195,7 +1231,7 @@ class InstantiatorTest < Test::Unit::TestCase
1195
1231
  ), TestMM, :comment_handler => proc {|c,k,e,env|
1196
1232
  false
1197
1233
  })
1198
- assert_problems([/element can not take this comment/], problems)
1234
+ assert_problems([[/element can not take this comment/, 3]], problems)
1199
1235
  end
1200
1236
 
1201
1237
  def test_comment_handler_comment_not_allowed_unassociated
@@ -1204,7 +1240,7 @@ class InstantiatorTest < Test::Unit::TestCase
1204
1240
  ), TestMM, :comment_handler => proc {|c,k,e,env|
1205
1241
  false
1206
1242
  })
1207
- assert_problems([/Unassociated comment not allowed/], problems)
1243
+ assert_problems([[/Unassociated comment not allowed/, 2]], problems)
1208
1244
  end
1209
1245
 
1210
1246
  #
@@ -1216,7 +1252,7 @@ class InstantiatorTest < Test::Unit::TestCase
1216
1252
  @annotation
1217
1253
  TestNode
1218
1254
  ), TestMM)
1219
- assert_problems([/annotation not allowed/i], problems)
1255
+ assert_problems([[/annotation not allowed/i, 3]], problems)
1220
1256
  end
1221
1257
 
1222
1258
  def test_annotation_not_allowed
@@ -1226,7 +1262,7 @@ class InstantiatorTest < Test::Unit::TestCase
1226
1262
  ), TestMM, :annotation_handler => proc {|a,e,env|
1227
1263
  false
1228
1264
  })
1229
- assert_problems([/annotation not allowed/i], problems)
1265
+ assert_problems([[/annotation not allowed/i, 3]], problems)
1230
1266
  end
1231
1267
 
1232
1268
  def test_annotation_in_wrong_places
@@ -1308,16 +1344,20 @@ class InstantiatorTest < Test::Unit::TestCase
1308
1344
  TestNode text: <%a%>b%>
1309
1345
  ), TestMM, :enable_generics => true)
1310
1346
  assert_problems([
1311
- [/parse error on token '<bla'/i, 2],
1347
+ [/parse error on token '<'/i, 2],
1348
+ [/unexpected unlabled argument/i, 2],
1312
1349
  [/parse error on token '>'/i, 3],
1313
1350
  [/unexpected identifier 'b'/i, 5],
1314
1351
  [/parse error on token '>'/i, 5],
1315
1352
  [/unexpected unlabled argument/i, 5],
1316
- [/parse error on token '<%a'/i, 6],
1317
- [/parse error on token '<%a%'/i, 7],
1353
+ [/parse error on token '<'/i, 6],
1354
+ [/unexpected unlabled argument/i, 6],
1355
+ [/parse error on token '<'/i, 7],
1356
+ [/unexpected unlabled argument/i, 7],
1357
+ [/parse error on token '%'/i, 7],
1318
1358
  [/unexpected identifier 'b'/i, 8],
1319
1359
  [/unexpected unlabled argument/i, 8],
1320
- [/parse error on token '%>'/i, 8],
1360
+ [/parse error on token '%'/i, 8],
1321
1361
  ], problems)
1322
1362
  end
1323
1363
 
@@ -1413,11 +1453,19 @@ class InstantiatorTest < Test::Unit::TestCase
1413
1453
  TestNode float: 1.23
1414
1454
  TestNode float: 1.23e-08
1415
1455
  TestNode float: 1.23e+10
1456
+ TestNode float: 1234567890.123456789
1416
1457
  ), TestMM)
1417
1458
  assert_no_problems(problems)
1418
1459
  assert_equal 1.23, env.elements[0].float
1419
1460
  assert_equal 1.23e-08, env.elements[1].float
1420
1461
  assert_equal 1.23e+10, env.elements[2].float
1462
+ if rgen_with_bigdecimal?
1463
+ assert env.elements[3].float.is_a?(BigDecimal)
1464
+ assert_equal "1234567890.123456789", env.elements[3].float.to_s("F")
1465
+ else
1466
+ assert env.elements[3].float.is_a?(Float)
1467
+ assert_equal "1234567890.1234567", env.elements[3].float.to_s
1468
+ end
1421
1469
  end
1422
1470
 
1423
1471
  def test_boolean
@@ -1444,6 +1492,17 @@ class InstantiatorTest < Test::Unit::TestCase
1444
1492
  assert_equal [:A, :B, :'non-word*chars', :'2you'], env.find(:text => "root").first.childs.collect{|c| c.enum}
1445
1493
  end
1446
1494
 
1495
+ def test_with_bom
1496
+ env, problems = instantiate(%Q(\xEF\xBB\xBF
1497
+ TestNode text: "some text", nums: [1,2] {
1498
+ TestNode text: "child"
1499
+ TestNode text: "child2"
1500
+ }
1501
+ ), TestMM)
1502
+ assert_no_problems(problems)
1503
+ assert_model_simple(env, :with_nums)
1504
+ end
1505
+
1447
1506
  #
1448
1507
  # conflicts with builtins
1449
1508
  #
@@ -1475,7 +1534,7 @@ class InstantiatorTest < Test::Unit::TestCase
1475
1534
  input.force_encoding("binary")
1476
1535
  env, problems = instantiate(input, TestMM)
1477
1536
  assert_no_problems(problems)
1478
- assert_match env.elements.first.text, /AE Umlaut: /
1537
+ assert_match /AE Umlaut: /, env.elements.first.text
1479
1538
  end
1480
1539
 
1481
1540
  private
@@ -1527,6 +1586,15 @@ class InstantiatorTest < Test::Unit::TestCase
1527
1586
  end
1528
1587
  end
1529
1588
 
1589
+ def rgen_with_bigdecimal?
1590
+ begin
1591
+ TestMM::TestNode.new.float = BigDecimal.new("0.0")
1592
+ rescue StandardError
1593
+ return false
1594
+ end
1595
+ true
1596
+ end
1597
+
1530
1598
  end
1531
1599
 
1532
1600