
header position 0..66
module numericServices
  metamodel http://www.eclipse.org/emf/2002/Ecore (25..63)
  [comment @main (79..84) /] (70..86)
  
  public template test(p : EPackage (110..129))
  @main
    NEW_LINE (indentationNeeded)  (newLineNeeded) (135..137)
    [file url 'integerTests' (146..160) mode overwrite
      [let 
      var1 : java.lang.Integer = 1 (201..202) (184..202)
        [let 
        var2 : java.lang.Integer = 2 (233..234) (216..234)
          @Test var2.oclAsType(Integer) =>  (245..278)
          [.oclAsType(var2, java.lang.Integer) (279..302)/] (newLineNeeded (278..306)
          @Test var2.oclIsUndefined() =>  (314..345)
          [.equals(var2, null) (346..357)/] (newLineNeeded (345..361)
          @Test var2.oclIsTypeOf(Integer) =>  (369..404)
          [.oclIsTypeOf(var2, java.lang.Integer) (405..430)/] (newLineNeeded (404..434)
          @Test var2.oclIsTypeOf(EPackage) =>  (442..478)
          [.oclIsTypeOf(var2, EPackage) (479..512)/] (newLineNeeded (478..516)
          @Test var2.oclIsKindOf(Integer) =>  (524..559)
          [.oclIsKindOf(var2, java.lang.Integer) (560..585)/] (newLineNeeded (559..589)
          @Test var2.oclIsKindOf(EPackage) =>  (597..633)
          [.oclIsKindOf(var2, EPackage) (634..667)/] (newLineNeeded (633..671)
          @Test var1 = var2 =>  (679..700)
          [.equals(var1, var2) (701..712)/] (newLineNeeded (700..716)
          @Test var1 = var1 =>  (724..745)
          [.equals(var1, var1) (746..757)/] (newLineNeeded (745..761)
          @Test var1 <> var2 =>  (769..791)
          [.differs(var1, var2) (792..804)/] (newLineNeeded (791..808)
          @Test var1 <> var1 =>  (816..838)
          [.differs(var1, var1) (839..851)/] (newLineNeeded (838..855)
          @Test var2.toString() =>  (863..888)
          [.toString(var2) (889..904)/] (newLineNeeded (888..908)
          @Test var1 + var2 =>  (916..937)
          [.add(var1, var2) (938..949)/] (newLineNeeded (937..953)
          @Test var1 - var2 =>  (961..982)
          [.sub(var1, var2) (983..994)/] (newLineNeeded (982..998)
          @Test var2 - var1 =>  (1006..1027)
          [.sub(var2, var1) (1028..1039)/] (newLineNeeded (1027..1043)
          @Test var1 * var2 =>  (1051..1072)
          [.mult(var1, var2) (1073..1084)/] (newLineNeeded (1072..1088)
          @Test var1 / var2 =>  (1096..1117)
          [.divOp(.toDouble(var1), .toDouble(var2)) (1118..1151)/] (newLineNeeded (1117..1155)
          @Test var2 / var1 =>  (1163..1184)
          [.divOp(.toDouble(var2), .toDouble(var1)) (1185..1218)/] (newLineNeeded (1184..1222)
          @Test var1 < var2 =>  (1230..1251)
          [.lessThan(var1, var2) (1252..1263)/] (newLineNeeded (1251..1267)
          @Test var2 < var1 =>  (1275..1296)
          [.lessThan(var2, var1) (1297..1308)/] (newLineNeeded (1296..1312)
          @Test var1 > var2 =>  (1320..1341)
          [.greaterThan(var1, var2) (1342..1353)/] (newLineNeeded (1341..1357)
          @Test var2 > var1 =>  (1365..1386)
          [.greaterThan(var2, var1) (1387..1398)/] (newLineNeeded (1386..1402)
          @Test var1 <= var1 =>  (1410..1432)
          [.lessThanEqual(var1, var1) (1433..1445)/] (newLineNeeded (1432..1449)
          @Test var1 <= var2 =>  (1457..1479)
          [.lessThanEqual(var1, var2) (1480..1492)/] (newLineNeeded (1479..1496)
          @Test var2 <= var1 =>  (1504..1526)
          [.lessThanEqual(var2, var1) (1527..1539)/] (newLineNeeded (1526..1543)
          @Test var1 >= var1 =>  (1551..1573)
          [.greaterThanEqual(var1, var1) (1574..1586)/] (newLineNeeded (1573..1590)
          @Test var1 >= var2 =>  (1598..1620)
          [.greaterThanEqual(var1, var2) (1621..1633)/] (newLineNeeded (1620..1637)
          @Test var2 >= var1 =>  (1645..1667)
          [.greaterThanEqual(var2, var1) (1668..1680)/] (newLineNeeded (1667..1684)
          @Test var1.abs() =>  (1692..1712)
          [.abs(var1) (1713..1723)/] (newLineNeeded (1712..1727)
          @Test var2.abs() =>  (1735..1755)
          [.abs(var2) (1756..1766)/] (newLineNeeded (1755..1770)
          @Test var1.div(var2) =>  (1778..1802)
          [.div(var1, var2) (1803..1817)/] (newLineNeeded (1802..1821)
          @Test var2.div(var1) =>  (1829..1853)
          [.div(var2, var1) (1854..1868)/] (newLineNeeded (1853..1872)
          @Test var1.floor() =>  (1880..1902)
          [.floor(var1) (1903..1915)/] (newLineNeeded (1902..1919)
          @Test var2.floor() =>  (1927..1949)
          [.floor(var2) (1950..1962)/] (newLineNeeded (1949..1966)
          @Test var1.max(var2) =>  (1974..1998)
          [.max(var1, var2) (1999..2013)/] (newLineNeeded (1998..2017)
          @Test var2.max(var1) =>  (2025..2049)
          [.max(var2, var1) (2050..2064)/] (newLineNeeded (2049..2068)
          @Test var1.min(var2) =>  (2076..2100)
          [.min(var1, var2) (2101..2115)/] (newLineNeeded (2100..2119)
          @Test var2.min(var1) =>  (2127..2151)
          [.min(var2, var1) (2152..2166)/] (newLineNeeded (2151..2170)
          @Test var1.mod(var2) =>  (2178..2202)
          [.mod(var1, var2) (2203..2217)/] (newLineNeeded (2202..2221)
          @Test var2.mod(var1) =>  (2229..2253)
          [.mod(var2, var1) (2254..2268)/] (newLineNeeded (2253..2272)
          @Test var1.round() =>  (2280..2302)
          [.round(var1) (2303..2315)/] (newLineNeeded (2302..2319)
          @Test var2.round() =>  (2327..2349)
          [.round(var2) (2350..2362)/] (newLineNeeded (2349..2366)
          @Test var1.toString() =>  (2374..2399)
          [.toString(var1) (2400..2415)/] (newLineNeeded (2399..2419)
          @Test var2.toString() =>  (2427..2452)
          [.toString(var2) (2453..2468)/] (newLineNeeded (2452..2472)
          @Test 1 + (2 - 1)*3 >= 4 + 2 =>  (2480..2512)
          [.greaterThanEqual(.add(1, .mult(.sub(2, 1), 3)), .add(4, 2)) (2513..2537)/] (newLineNeeded (2512..2541)
          @Test var1.oclAsSet() =>  (2549..2574)
          [->asSet(var1) (2575..2588)/] (newLineNeeded (2574..2592) (235..2598)
        [/let] (211..2604)
         (newLineNeeded) (2604..2606) (203..2610)
      [/let] (179..2616)
       (newLineNeeded) (2616..2618) (173..2620)
    [/file] (139..2627)
     (newLineNeeded) (2627..2629)
    NEW_LINE (indentationNeeded)  (newLineNeeded) (2631..2633)
    [file url 'realTests' (2642..2653) mode overwrite
      [let 
      var1 : java.lang.Double = 1.2 (2691..2694) (2677..2694)
        [let 
        var2 : java.lang.Double = 2.3 (2722..2725) (2708..2725)
          @Test var1.oclAsType(Real) =>  (2736..2766)
          [.oclAsType(var1, java.lang.Double) (2767..2787)/] (newLineNeeded (2766..2791)
          @Test var1.oclIsUndefined() =>  (2799..2830)
          [.equals(var1, null) (2831..2842)/] (newLineNeeded (2830..2846)
          @Test var1.oclIsTypeOf(Real) =>  (2854..2886)
          [.oclIsTypeOf(var1, java.lang.Double) (2887..2909)/] (newLineNeeded (2886..2913)
          @Test var1.oclIsTypeOf(EPackage) =>  (2921..2957)
          [.oclIsTypeOf(var1, EPackage) (2958..2991)/] (newLineNeeded (2957..2995)
          @Test var1.oclIsKindOf(Real) =>  (3003..3035)
          [.oclIsKindOf(var1, java.lang.Double) (3036..3058)/] (newLineNeeded (3035..3062)
          @Test var1.oclIsKindOf(EPackage) =>  (3070..3106)
          [.oclIsKindOf(var1, EPackage) (3107..3140)/] (newLineNeeded (3106..3144)
          @Test var1 <> var1 =>  (3152..3174)
          [.differs(var1, var1) (3175..3187)/] (newLineNeeded (3174..3191)
          @Test var1 <> var2 =>  (3199..3221)
          [.differs(var1, var2) (3222..3234)/] (newLineNeeded (3221..3238)
          @Test var1 = var1 =>  (3246..3267)
          [.equals(var1, var1) (3268..3279)/] (newLineNeeded (3267..3283)
          @Test var1 = var2 =>  (3291..3312)
          [.equals(var1, var2) (3313..3324)/] (newLineNeeded (3312..3328)
          @Test var1.toString() =>  (3336..3361)
          [.toString(var1) (3362..3377)/] (newLineNeeded (3361..3381)
          @Test var1 + var2 =>  (3389..3410)
          [.add(var1, var2) (3411..3422)/] (newLineNeeded (3410..3426)
          @Test var1 - var2 =>  (3434..3455)
          [.sub(var1, var2) (3456..3467)/] (newLineNeeded (3455..3471)
          @Test var2 - var1 =>  (3479..3500)
          [.sub(var2, var1) (3501..3512)/] (newLineNeeded (3500..3516)
          @Test var1 * var2 =>  (3524..3545)
          [.mult(var1, var2) (3546..3557)/] (newLineNeeded (3545..3561)
          @Test var2 / var1 =>  (3569..3590)
          [.divOp(var2, var1) (3591..3602)/] (newLineNeeded (3590..3606)
          @Test var1 / var2 =>  (3614..3635)
          [.divOp(var1, var2) (3636..3647)/] (newLineNeeded (3635..3651)
          @Test var1 < var2 =>  (3659..3680)
          [.lessThan(var1, var2) (3681..3692)/] (newLineNeeded (3680..3696)
          @Test var2 < var1 =>  (3704..3725)
          [.lessThan(var2, var1) (3726..3737)/] (newLineNeeded (3725..3741)
          @Test var1 > var2 =>  (3749..3770)
          [.greaterThan(var1, var2) (3771..3782)/] (newLineNeeded (3770..3786)
          @Test var2 > var1 =>  (3794..3815)
          [.greaterThan(var2, var1) (3816..3827)/] (newLineNeeded (3815..3831)
          @Test var1 <= var1 =>  (3839..3861)
          [.lessThanEqual(var1, var1) (3862..3874)/] (newLineNeeded (3861..3878)
          @Test var1 <= var2 =>  (3886..3908)
          [.lessThanEqual(var1, var2) (3909..3921)/] (newLineNeeded (3908..3925)
          @Test var2 <= var1 =>  (3933..3955)
          [.lessThanEqual(var2, var1) (3956..3968)/] (newLineNeeded (3955..3972)
          @Test var1 >= var1 =>  (3980..4002)
          [.greaterThanEqual(var1, var1) (4003..4015)/] (newLineNeeded (4002..4019)
          @Test var1 >= var2 =>  (4027..4049)
          [.greaterThanEqual(var1, var2) (4050..4062)/] (newLineNeeded (4049..4066)
          @Test var2 >= var1 =>  (4074..4096)
          [.greaterThanEqual(var2, var1) (4097..4109)/] (newLineNeeded (4096..4113)
          @Test var1.abs() =>  (4121..4141)
          [.abs(var1) (4142..4152)/] (newLineNeeded (4141..4156)
          @Test var2.abs() =>  (4164..4184)
          [.abs(var2) (4185..4195)/] (newLineNeeded (4184..4199)
          @Test var1.floor() =>  (4207..4229)
          [.floor(var1) (4230..4242)/] (newLineNeeded (4229..4246)
          @Test var2.floor() =>  (4254..4276)
          [.floor(var2) (4277..4289)/] (newLineNeeded (4276..4293)
          @Test var1.max(var2) =>  (4301..4325)
          [.max(var1, var2) (4326..4340)/] (newLineNeeded (4325..4344)
          @Test var2.max(var1) =>  (4352..4376)
          [.max(var2, var1) (4377..4391)/] (newLineNeeded (4376..4395)
          @Test var1.min(var2) =>  (4403..4427)
          [.min(var1, var2) (4428..4442)/] (newLineNeeded (4427..4446)
          @Test var2.min(var1) =>  (4454..4478)
          [.min(var2, var1) (4479..4493)/] (newLineNeeded (4478..4497)
          @Test var1.round() =>  (4505..4527)
          [.round(var1) (4528..4540)/] (newLineNeeded (4527..4544)
          @Test var2.round() =>  (4552..4574)
          [.round(var2) (4575..4587)/] (newLineNeeded (4574..4591)
          @Test var1.toString() =>  (4599..4624)
          [.toString(var1) (4625..4640)/] (newLineNeeded (4624..4644)
          @Test var2.toString() =>  (4652..4677)
          [.toString(var2) (4678..4693)/] (newLineNeeded (4677..4697)
          @Test 3.0 / 1.5 =>  (4705..4724)
          [.divOp(3.0, 1.5) (4725..4734)/] (newLineNeeded (4724..4738)
          @Test 0.5 * 2.0 =>  (4746..4765)
          [.mult(0.5, 2.0) (4766..4775)/] (newLineNeeded (4765..4779)
          @Test 1.5 + (2.2 - 1.0)*3.2 >= 4.6 / 2.1 =>  (4787..4831)
          [.greaterThanEqual(.add(1.5, .mult(.sub(2.2, 1.0), 3.2)), .divOp(4.6, 2.1)) (4832..4868)/] (newLineNeeded (4831..4872)
          @Test var1.oclAsSet() =>  (4880..4905)
          [->asSet(var1) (4906..4919)/] (newLineNeeded (4905..4923) (2726..4929)
        [/let] (2703..4935)
         (newLineNeeded) (4935..4937) (2695..4941)
      [/let] (2672..4947)
       (newLineNeeded) (4947..4949) (2666..4951)
    [/file] (2635..4958)
     (newLineNeeded) (4958..4960)
    NEW_LINE (indentationNeeded)  (newLineNeeded) (4962..4964)
    NEW_LINE (indentationNeeded)  (newLineNeeded) (4966..4968) (131..4968)
  [/template] (88..4979) (0..4979)