textmodule TestStringFunctions2 (in ecmodel:ecore)

ecmodel.EPackage::main () {
  var s1:String = "vAlue of s1"
  var s2:String = "s2 value"

'*************************************** 
   Testing MOFScript String functions
***************************************
  '
  println ("s1.charAt(0):\t" + s1.charAt(0))
  println ("s1.endsWith(\"s1\"):\t" + s1.endsWith("s1"))
  println (s1.startsWith("val"))
  println (s1.equals("value of S1"))
  println (s1.equalsIgnoreCase("VaLue of S1"))
  println ("FFF".firstToLower())
  println ("fff".firstToUpper())
  println ("Hei.Du".replace("\\.", "FFF"))
  println ("size: " + s1.size())
  println ("s1.indexOf(\"of\"):" + s1.indexOf("of"))
  println ("s1.isUpperCase(2):" + s1.isUpperCase(2))
  println ("s1.isLowerCase(2):" + s1.isLowerCase(2))
  println ("\"\t\t    to be     \t normalized ..   \t\".normalizeSpace():" + "\t\t    to be normalized ..   \t".normalizeSpace())
  println ("\"\t\t    to be    \t trimmed\".trim():" + "\t\t    to be    \t trimmed".trim())
  println ("s1.substring(2,4):" + s1.substring(2, 4))
  println ("s1.substringAfter(\"of\"):" + s1.substringAfter("of"))
  println ("s1.substringBefore(\"of\")" + s1.substringBefore("of"))
  println ("s1.tpUpper():" + s1.toUpper())
  println ("s1.toLower():" + s1.toLower())
  nl 
  s1->forEach(s) {
    print (" " + s)    
  }
  nl
  s2->forEach(s:String | s.equalsIgnoreCase("u") or s.equalsIgnoreCase("2")) {
    print (" " + s + "(position: " + position() + ", count: " + count() + ")")
  }
  
'
*********************************
  Finished String testing
***********************************'
}