
header position 0..65
module stringServices
  metamodel http://www.eclipse.org/emf/2002/Ecore (24..62)
  [comment @main (78..83) /] (69..85)
  
  public template test(p : EPackage (109..128))
  @main
    NEW_LINE (indentationNeeded)  (newLineNeeded) (134..136)
    [file url 'oclAnyTests' (145..158) mode overwrite
      @Test 'test'.oclAsType(String) =>  (177..211)
      [.oclAsType('test', java.lang.String) (212..236)/] (newLineNeeded (211..240)
      @Test 'test'.oclIsUndefined() =>  (244..277)
      [.equals('test', null) (278..291)/] (newLineNeeded (277..295)
      @Test 'test'.oclIsTypeOf(String) =>  (299..335)
      [.oclIsTypeOf('test', java.lang.String) (336..362)/] (newLineNeeded (335..366)
      @Test 'test'.oclIsTypeOf(EPackage) =>  (370..408)
      [.oclIsTypeOf('test', EPackage) (409..444)/] (newLineNeeded (408..448)
      @Test 'test'.oclIsKindOf(String) =>  (452..488)
      [.oclIsKindOf('test', java.lang.String) (489..515)/] (newLineNeeded (488..519)
      @Test 'test'.oclIsKindOf(EPackage) =>  (523..561)
      [.oclIsKindOf('test', EPackage) (562..597)/] (newLineNeeded (561..601)
      @Test 'test' <> 'toto' =>  (605..631)
      [.differs('test', 'toto') (632..648)/] (newLineNeeded (631..652)
      @Test 'test' <> 'test' =>  (656..682)
      [.differs('test', 'test') (683..699)/] (newLineNeeded (682..703)
      @Test 'test' = 'toto' =>  (707..732)
      [.equals('test', 'toto') (733..748)/] (newLineNeeded (732..752)
      @Test 'test' = 'test' =>  (756..781)
      [.equals('test', 'test') (782..797)/] (newLineNeeded (781..801)
      @Test 'test'.toString() =>  (805..832)
      [.toString('test') (833..850)/] (newLineNeeded (832..854)
      @Test 'test'.oclAsSet() =>  (858..885)
      [->asSet('test') (886..901)/] (newLineNeeded (885..905) (171..907)
    [/file] (138..914)
     (newLineNeeded) (914..916)
    NEW_LINE (indentationNeeded)  (newLineNeeded) (918..920)
    [file url 'testServices' (929..943) mode overwrite
      @Test 'test'.size() =>  (962..985)
      [.size('test') (986..999)/] (newLineNeeded (985..1003)
      @Test '12'.toInteger() =>  (1007..1033)
      [.toInteger('12') (1034..1050)/] (newLineNeeded (1033..1054)
      @Test '1.2'.toReal() =>  (1058..1082)
      [.toReal('1.2') (1083..1097)/] (newLineNeeded (1082..1101)
      @Test 'test'.toUpper() =>  (1105..1131)
      [.toUpper('test') (1132..1148)/] (newLineNeeded (1131..1152)
      @Test 'TEST'.toLower() =>  (1156..1182)
      [.toLower('TEST') (1183..1199)/] (newLineNeeded (1182..1203)
      @Test 'test'.contains('es') =>  (1207..1238)
      [.contains('test', 'es') (1239..1260)/] (newLineNeeded (1238..1264)
      @Test 'test'.contains('toto') =>  (1268..1301)
      [.contains('test', 'toto') (1302..1325)/] (newLineNeeded (1301..1329)
      @Test 'test'.endsWith('st') =>  (1333..1364)
      [.endsWith('test', 'st') (1365..1386)/] (newLineNeeded (1364..1390)
      @Test 'test'.endsWith('toto') =>  (1394..1427)
      [.endsWith('test', 'toto') (1428..1451)/] (newLineNeeded (1427..1455)
      @Test 'test'.replaceAll('t', 'z') =>  (1459..1496)
      [.replaceAll('test', 't', 'z') (1497..1524)/] (newLineNeeded (1496..1528)
      @Test 'test'.tokenize() =>  (1532..1559)
      [.tokenize('test') (1560..1577)/] (newLineNeeded (1559..1581)
      @Test '  test '.trim() =>  (1585..1611)
      [.trim('  test ') (1612..1628)/] (newLineNeeded (1611..1632)
      @Test 'test'.strcmp('test') =>  (1636..1667)
      [.strcmp('test', 'test') (1668..1689)/] (newLineNeeded (1667..1693)
      @Test 'test'.strstr('es') =>  (1697..1726)
      [.strstr('test', 'es') (1727..1746)/] (newLineNeeded (1726..1750)
      @Test 'test'.strstr('toto') =>  (1754..1785)
      [.strstr('test', 'toto') (1786..1807)/] (newLineNeeded (1785..1811)
      @Test 'test'.concat('test') =>  (1815..1846)
      [.concat('test', 'test') (1847..1868)/] (newLineNeeded (1846..1872)
      @Test 'test'.equalsIgnoreCase('tEsT') =>  (1876..1917)
      [.equalsIgnoreCase('test', 'tEsT') (1918..1949)/] (newLineNeeded (1917..1953)
      @Test 'test'.equalsIgnoreCase('toto') =>  (1957..1998)
      [.equalsIgnoreCase('test', 'toto') (1999..2030)/] (newLineNeeded (1998..2034)
      @Test 'test'.first(2) =>  (2038..2063)
      [.first('test', 2) (2064..2079)/] (newLineNeeded (2063..2083)
      @Test 'test'.isAlpha() =>  (2087..2113)
      [.isAlpha('test') (2114..2130)/] (newLineNeeded (2113..2134)
      @Test 'test1'.isAlpha() =>  (2138..2165)
      [.isAlpha('test1') (2166..2183)/] (newLineNeeded (2165..2187)
      @Test 'test'.isAlphanum() =>  (2191..2220)
      [.isAlphaNum('test') (2221..2240)/] (newLineNeeded (2220..2244)
      @Test 'test1'.isAlphanum() =>  (2248..2278)
      [.isAlphaNum('test1') (2279..2299)/] (newLineNeeded (2278..2303)
      @Test '111'.isAlphanum() =>  (2307..2335)
      [.isAlphaNum('111') (2336..2354)/] (newLineNeeded (2335..2358)
      @Test 'test'.last(2) =>  (2362..2386)
      [.last('test', 2) (2387..2401)/] (newLineNeeded (2386..2405)
      @Test 'test'.lastIndex('a') =>  (2409..2440)
      [.lastIndex('test', 'a') (2441..2462)/] (newLineNeeded (2440..2466)
      @Test 'test'.lastIndex('t') =>  (2470..2501)
      [.lastIndex('test', 't') (2502..2523)/] (newLineNeeded (2501..2527)
      @Test 'test'.matches('test') =>  (2531..2563)
      [.matches('test', 'test') (2564..2586)/] (newLineNeeded (2563..2590)
      @Test 'test'.prefix('pre') =>  (2594..2624)
      [.prefix('test', 'pre') (2625..2645)/] (newLineNeeded (2624..2649)
      @Test 'test test'.replace('te', 'ta') =>  (2653..2694)
      [.replace('test test', 'te', 'ta') (2695..2726)/] (newLineNeeded (2694..2730)
      @Test 'test'.startsWith('te') =>  (2734..2767)
      [.startsWith('test', 'te') (2768..2791)/] (newLineNeeded (2767..2795)
      @Test 'test'.startsWith('toto') =>  (2799..2834)
      [.startsWith('test', 'toto') (2835..2860)/] (newLineNeeded (2834..2864)
      @Test 'test test'.substitute('te', 'ta') =>  (2868..2912)
      [.substitute('test test', 'te', 'ta') (2913..2947)/] (newLineNeeded (2912..2951)
      @Test 'test'.substituteAll('t', 'z') =>  (2955..2995)
      [.substituteAll('test', 't', 'z') (2996..3026)/] (newLineNeeded (2995..3030)
      @Test 'test'.substring(2) =>  (3034..3063)
      [.substring('test', 2) (3064..3083)/] (newLineNeeded (3063..3087)
      @Test 'test'.substring(2,3) =>  (3091..3122)
      [.substring('test', 2, 3) (3123..3145)/] (newLineNeeded (3122..3149)
      @Test 'test'.toUpperCase() =>  (3153..3183)
      [.toUpper('test') (3184..3200)/] (newLineNeeded (3183..3204)
      @Test 'test'.toUpperFirst() =>  (3208..3239)
      [.toUpperFirst('test') (3240..3261)/] (newLineNeeded (3239..3265)
      @Test 'TEST'.toLowerCase() =>  (3269..3299)
      [.toLower('TEST') (3300..3316)/] (newLineNeeded (3299..3320)
      @Test 'TEST'.toLowerFirst() =>  (3324..3355)
      [.toLowerFirst('TEST') (3356..3377)/] (newLineNeeded (3355..3381)
      @Test 'test'.tokenize() =>  (3385..3412)
      [.tokenize('test') (3413..3430)/] (newLineNeeded (3412..3434)
      @Test 'test'.at(2) =>  (3438..3460)
      [.at('test', 2) (3461..3473)/] (newLineNeeded (3460..3477)
      @Test 'test'.characters() =>  (3481..3510)
      [.characters('test') (3511..3530)/] (newLineNeeded (3510..3534)
      @Test 'lineOne' + lineSeparator() + 'lineTwo' + lineSeparator() + 'LineThree'.tokenizeLine()->sep(', ') =>  (3538..3645)
      [.add(.add(.add(.add('lineOne', .lineSeparator(p)), 'lineTwo'), .lineSeparator(p)), ->sep(.tokenize('LineThree', .lineSeparator('')), ', ')) (3646..3761)/] (newLineNeeded (3645..3765)
      @Test 'test test'.substituteFirst('te', 'ta') =>  (3769..3818)
      [.substituteFirst('test test', 'te', 'ta') (3819..3858)/] (newLineNeeded (3818..3862)
      @Test 'test test'.replaceFirst('te', 'ta') =>  (3866..3912)
      [.replaceFirst('test test', 'te', 'ta') (3913..3949)/] (newLineNeeded (3912..3953)
      @Test '*' + lineSeparator() + '*' =>  (3957..3994)
      [.add(.add('*', .lineSeparator(p)), '*') (3995..4024)/] (newLineNeeded (3994..4028) (956..4030)
    [/file] (922..4037)
     (newLineNeeded) (4037..4039)
    NEW_LINE (indentationNeeded)  (newLineNeeded) (4041..4043)
    [file url 'testAdd' (4052..4061) mode overwrite
      @Test 'a' + 'b' =>  (4080..4099)
      [.add('a', 'b') (4100..4109)/] (newLineNeeded (4099..4113)
      @Test 'a' + 'b' + 'c' =>  (4117..4142)
      [.add(.add('a', 'b'), 'c') (4143..4158)/] (newLineNeeded (4142..4162)
      @Test 'a' + 'test' =>  (4166..4188)
      [.add('a', 'test') (4189..4201)/] (newLineNeeded (4188..4205)
      @Test 'a' + 'test' + 'c' =>  (4209..4237)
      [.add(.add('a', 'test'), 'c') (4238..4256)/] (newLineNeeded (4237..4260)
      @Test 'a' + p.name =>  (4264..4286)
      [.add('a', .aqlFeatureAccess(p, 'name')) (4287..4299)/] (newLineNeeded (4286..4303)
      @Test 'a' + p.name + 'c' =>  (4307..4335)
      [.add(.add('a', .aqlFeatureAccess(p, 'name')), 'c') (4336..4354)/] (newLineNeeded (4335..4358)
      @Test 'a' + p.name + 'c' + 'test' =>  (4362..4399)
      [.add(.add(.add('a', .aqlFeatureAccess(p, 'name')), 'c'), 'test') (4400..4427)/] (newLineNeeded (4399..4431) (4074..4433)
    [/file] (4045..4440)
     (newLineNeeded) (4440..4442)
    NEW_LINE (indentationNeeded)  (newLineNeeded) (4444..4446) (130..4446)
  [/template] (87..4457) (0..4457)