Last sync 2016.04.01
[deliverable/titan.core.git] / regression_test / text2ttcn / ucharstring_test.ttcn
old mode 100755 (executable)
new mode 100644 (file)
index 7ff2c83..65478c9
 /******************************************************************************
- * Copyright (c) 2000-2015 Ericsson Telecom AB
+ * Copyright (c) 2000-2016 Ericsson Telecom AB
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *   Balasko, Jeno
+ *
  ******************************************************************************/
-module ucharstring_test {\r
-//=========================================================================\r
-// Import Part\r
-//=========================================================================\r
-\r
-import from types all;\r
-import from functions all;\r
-\r
-//=========================================================================\r
-// Module Parameters\r
-//=========================================================================\r
-modulepar {\r
-  \r
-  //modulepar charstrings not modified from cfg file\r
-  template universal charstring tspt_ucs_v := "ABBA";\r
-  template universal charstring tspt_ucs_o := omit;\r
-  template universal charstring tspt_ucs_a := *;\r
-  template universal charstring tspt_ucs_q := ?;\r
-  template universal charstring tspt_ucs_al1 := * length(2); //length restriction\r
-  template universal charstring tspt_ucs_al2 := * length(2..4);\r
-  template universal charstring tspt_ucs_ql1 := ? length(2);\r
-  template universal charstring tspt_ucs_ql2 := ? length(2..4);\r
-  template universal charstring tspt_ucs_vl1 := ("ABBA");\r
-  template universal charstring tspt_ucs_vl2 := ("ABBA","baba");\r
-  template universal charstring tspt_ucs_vl3 := ("ABBA","baba","Bye");\r
-  template universal charstring tspt_ucs_c1 := complement("ABBA")\r
-  template universal charstring tspt_ucs_c2 := complement("ABBA","baba");\r
-  template universal charstring tspt_ucs_c3 := complement("ABBA","baba","Bye");\r
-  template universal charstring tspt_ucs_r1 := ("A".."B"); //range\r
-  template universal charstring tspt_ucs_r2 := ("a".."c");\r
-  template universal charstring tspt_ucs_pa := pattern "abc*xyz"\r
-  template universal charstring tspt_ucs_pq := pattern "abc?xyz"\r
-  \r
-  template universal charstring tspt_ucs_vifp := "ABBA" ifpresent;\r
-  template universal charstring tspt_ucs_oifp := omit ifpresent;\r
-  template universal charstring tspt_ucs_aifp := * ifpresent;\r
-  template universal charstring tspt_ucs_qifp := ? ifpresent;\r
-  template universal charstring tspt_ucs_al1ifp := * length(2) ifpresent; //length restriction\r
-  template universal charstring tspt_ucs_al2ifp := * length(2..4) ifpresent;\r
-  template universal charstring tspt_ucs_ql1ifp := ? length(2) ifpresent;\r
-  template universal charstring tspt_ucs_ql2ifp := ? length(2..4) ifpresent;\r
-  template universal charstring tspt_ucs_vl1ifp := ("ABBA") ifpresent;\r
-  template universal charstring tspt_ucs_vl2ifp := ("ABBA","baba") ifpresent;\r
-  template universal charstring tspt_ucs_vl3ifp := ("ABBA","baba","Bye") ifpresent;\r
-  template universal charstring tspt_ucs_c1ifp := complement("ABBA") ifpresent\r
-  template universal charstring tspt_ucs_c2ifp := complement("ABBA","baba") ifpresent;\r
-  template universal charstring tspt_ucs_c3ifp := complement("ABBA","baba","Bye") ifpresent;\r
-  template universal charstring tspt_ucs_r1ifp := ("A".."B") ifpresent; //range\r
-  template universal charstring tspt_ucs_r2ifp := ("a".."c") ifpresent;\r
-  template universal charstring tspt_ucs_paifp := pattern "abc*xyz"  ifpresent\r
-  template universal charstring tspt_ucs_pqifp := pattern "abc?xyz"  ifpresent  \r
-  \r
-  //modulepar universal charstrings modified from cfg file\r
-  template universal charstring tspt_ucs_mod4v := * //after mod:"ABBA";\r
-  template universal charstring tspt_ucs_mod4o := * //omit;\r
-  template universal charstring tspt_ucs_mod4ol := * //omit;\r
-  template universal charstring tspt_ucs_mod4a := "A" //*;\r
-  template universal charstring tspt_ucs_mod4q := "" //?;\r
-  template universal charstring tspt_ucs_mod4al1 := "A" //* length(2); //length restriction\r
-  template universal charstring tspt_ucs_mod4al2 := "Original" //mofified for: * length(2..4);\r
-  template universal charstring tspt_ucs_mod4ql1 := "Original" //mofified for:? length(2);\r
-  template universal charstring tspt_ucs_mod4ql2 := "Original" //mofified for:? length(2..4);\r
-  template universal charstring tspt_ucs_mod4vl1 := ("ABBA") //TODO: Adam //It should be mofified for: ("ABBA");\r
-  template universal charstring tspt_ucs_mod4vl2 := "Original" //mofified for:("ABBA","baba");\r
-  template universal charstring tspt_ucs_mod4vl3 := "Original" //mofified for:("ABBA","baba","Bye");\r
-  template universal charstring tspt_ucs_mod4c1 := "Original" //mofified for:complement("ABBA")\r
-  template universal charstring tspt_ucs_mod4c2 := "Original" //mofified for:complement("ABBA","baba");\r
-  template universal charstring tspt_ucs_mod4c3 := "Original" //mofified for:complement("ABBA","baba","Bye");\r
-  template universal charstring tspt_ucs_mod4r1 := "Original" //mofified for:("A".."B"); //range\r
-  template universal charstring tspt_ucs_mod4r2 := "Original" //mofified for:("a".."c");\r
-  template universal charstring tspt_ucs_mod4pa := "Original" //mofified for:pattern "abc*xyz"\r
-  template universal charstring tspt_ucs_mod4pq := "Original" //mofified for:pattern "abc?xyz"\r
-  \r
-  template universal charstring tspt_ucs_mod4vifp := "Original" //mofified for:"ABBA" ifpresent;\r
-  template universal charstring tspt_ucs_mod4oifp := "Original" //mofified for:omit ifpresent;\r
-  template universal charstring tspt_ucs_mod4aifp := "Original" //mofified for:* ifpresent;\r
-  template universal charstring tspt_ucs_mod4qifp := "Original" //mofified for:? ifpresent;\r
-  template universal charstring tspt_ucs_mod4al1ifp := "Original" //mofified for:* length(2) ifpresent; //length restriction\r
-  template universal charstring tspt_ucs_mod4al2ifp := "Original" //mofified for:* length(2..4) ifpresent;\r
-  template universal charstring tspt_ucs_mod4ql1ifp := "Original" //mofified for:? length(2) ifpresent;\r
-  template universal charstring tspt_ucs_mod4ql2ifp := "Original" //mofified for:? length(2..4) ifpresent;\r
-  template universal charstring tspt_ucs_mod4vl1ifp :=  ("ABBA") ifpresent //TODO: Adam //It should be mofified for: ("ABBA");\r
-  template universal charstring tspt_ucs_mod4vl2ifp := "Original" //mofified for:("ABBA","baba") ifpresent;\r
-  template universal charstring tspt_ucs_mod4vl3ifp := "Original" //mofified for:("ABBA","baba","Bye") ifpresent;\r
-  template universal charstring tspt_ucs_mod4c1ifp := "Original" //mofified for:complement("ABBA") ifpresent\r
-  template universal charstring tspt_ucs_mod4c2ifp := "Original" //mofified for:complement("ABBA","baba") ifpresent;\r
-  template universal charstring tspt_ucs_mod4c3ifp := "Original" //mofified for:complement("ABBA","baba","Bye") ifpresent;\r
-  template universal charstring tspt_ucs_mod4r1ifp := "Original" //mofified for:("A".."B") ifpresent; //range\r
-  template universal charstring tspt_ucs_mod4r2ifp := "Original" //mofified for:("a".."c") ifpresent;\r
-  template universal charstring tspt_ucs_mod4paifp := "Original" //mofified for:pattern "abc*xyz"  ifpresent\r
-  template universal charstring tspt_ucs_mod4pqifp := "Original" //mofified for:pattern "abc?xyz"  ifpresent  \r
-  \r
-}\r
-\r
-//=========================================================================\r
-// Templates\r
-//=========================================================================\r
-// not modulepars\r
-template universal charstring t_ucs_v := "ABBA";\r
-template universal charstring t_ucs_o := omit;\r
-template universal charstring t_ucs_a := *;\r
-template universal charstring t_ucs_q := ?;\r
-template universal charstring t_ucs_al1 := * length(2); //length restriction\r
-template universal charstring t_ucs_al2 := * length(2..4);\r
-template universal charstring t_ucs_ql1 := ? length(2);\r
-template universal charstring t_ucs_ql2 := ? length(2..4);\r
-template universal charstring t_ucs_vl1 := ("ABBA");\r
-template universal charstring t_ucs_vl2 := ("ABBA","baba");\r
-template universal charstring t_ucs_vl3 := ("ABBA","baba","Bye");\r
-template universal charstring t_ucs_c1 := complement("ABBA")\r
-template universal charstring t_ucs_c2 := complement("ABBA","baba");\r
-template universal charstring t_ucs_c3 := complement("ABBA","baba","Bye");\r
-template universal charstring t_ucs_r1 := ("A".."B"); //range\r
-template universal charstring t_ucs_r2 := ("a".."c");\r
-template universal charstring t_ucs_pa := pattern "abc*xyz"\r
-template universal charstring t_ucs_pq := pattern "abc?xyz"\r
-\r
-template universal charstring t_ucs_vifp := "ABBA" ifpresent;\r
-template universal charstring t_ucs_oifp := omit ifpresent;\r
-template universal charstring t_ucs_aifp := * ifpresent;\r
-template universal charstring t_ucs_qifp := ? ifpresent;\r
-template universal charstring t_ucs_al1ifp := * length(2) ifpresent; //length restriction\r
-template universal charstring t_ucs_al2ifp := * length(2..4) ifpresent;\r
-template universal charstring t_ucs_ql1ifp := ? length(2) ifpresent;\r
-template universal charstring t_ucs_ql2ifp := ? length(2..4) ifpresent;\r
-template universal charstring t_ucs_vl1ifp := ("ABBA") ifpresent;\r
-template universal charstring t_ucs_vl2ifp := ("ABBA","baba") ifpresent;\r
-template universal charstring t_ucs_vl3ifp := ("ABBA","baba","Bye") ifpresent;\r
-template universal charstring t_ucs_c1ifp := complement("ABBA") ifpresent\r
-template universal charstring t_ucs_c2ifp := complement("ABBA","baba") ifpresent;\r
-template universal charstring t_ucs_c3ifp := complement("ABBA","baba","Bye") ifpresent;\r
-template universal charstring t_ucs_r1ifp := ("A".."B") ifpresent; //range\r
-template universal charstring t_ucs_r2ifp := ("a".."c") ifpresent;\r
-template universal charstring t_ucs_paifp := pattern "abc*xyz"  ifpresent\r
-template universal charstring t_ucs_pqifp := pattern "abc?xyz"  ifpresent\r
-\r
-//=========================================================================\r
-// Functions\r
-//=========================================================================\r
-\r
-function f_string2ttcn_rucs_t(in charstring pl_cs, in template RUCS pl_expected_result) {\r
-  var template RUCS vl_result;\r
-  @try {\r
-    string2ttcn(pl_cs,vl_result);\r
-    setverdict(pass) \r
-  }\r
-  @catch(err_str) {\r
-    log("string2ttcn() failed: ",err_str);\r
-    setverdict(fail);\r
-  }\r
-  log(pl_expected_result);\r
-  log(vl_result);\r
-  if( log2str(pl_expected_result) == log2str(vl_result) ) { setverdict(pass) } else { setverdict(fail) }\r
-}\r
-\r
-function f_string2ttcn_rucs_t_str(in charstring pl_cs, in charstring pl_expected_result) {\r
-  var template RUCS vl_result;\r
-  @try {\r
-    string2ttcn(pl_cs,vl_result);\r
-    setverdict(pass) \r
-  }\r
-  @catch(err_str) {\r
-    log("str2ttcn() failed: ",err_str);\r
-    setverdict(fail);\r
-  }\r
-  log("Expected result: ", pl_expected_result);\r
-  log("Result: ", vl_result);\r
-  if( pl_expected_result == log2str(vl_result) ) { setverdict(pass) } else { setverdict(fail) }\r
-}\r
-\r
-//template string -> variable conversion\r
-//expected result: error\r
-function f_string2ttcn_rucs_v(in charstring pl_cs, in template RUCS pl_expected_result, in boolean pl_ok_expected) {\r
-  var RUCS vl_result;\r
-  if( pl_ok_expected ) {\r
-    @try {\r
-      string2ttcn(pl_cs, vl_result);\r
-      setverdict(pass);\r
-    }\r
-    @catch(err_str) {\r
-      log("string2ttcn() failed: ",err_str);\r
-      setverdict(fail);\r
-    }\r
-    if( log2str(pl_expected_result) == log2str(vl_result) ) { setverdict(pass) } else { setverdict(fail) }\r
-  } \r
-  else \r
-  {\r
-    @try {\r
-      string2ttcn(pl_cs, vl_result);\r
-      setverdict(fail);\r
-    }\r
-    @catch(err_str) {\r
-      log("string2ttcn() conversion error: ",err_str);\r
-      setverdict(pass,"Expected error, ok");\r
-    }\r
-    \r
-  }\r
-  log("Expected result: ",pl_expected_result );\r
-  log("Result: ", vl_result);\r
-}\r
-\r
-//this function is the same but uses\r
-function f_string2ttcn_rucs_v_str(in charstring pl_cs, charstring pl_expected_result, in boolean pl_ok_expected) {\r
-  var RUCS vl_result;\r
-  if( pl_ok_expected ) {\r
-    @try {\r
-      string2ttcn(pl_cs, vl_result);\r
-      setverdict(pass);\r
-    }\r
-    @catch(err_str) {\r
-      log("str2ttcn() failed: ",err_str);\r
-      setverdict(fail);\r
-    }\r
-    if( pl_expected_result == log2str(vl_result) ) { setverdict(pass) } else { setverdict(fail) }\r
-  } \r
-  else \r
-  {\r
-    @try {\r
-      string2ttcn(pl_cs, vl_result);\r
-      setverdict(fail);\r
-    }\r
-    @catch(err_str) {\r
-      log("str2ttcn() conversion error: ",err_str);\r
-      setverdict(pass,"Expected error, ok");\r
-    }\r
-    \r
-  }\r
-  log("Expected result: ", pl_expected_result );\r
-  log("Result: ", vl_result);\r
-}\r
-\r
-//=========================================================================\r
-// Testcases\r
-//=========================================================================\r
-\r
-testcase tc_ucs_ttcn2string_emb() runs on MC {\r
-  log(t_rucs(tspt_ucs_mod4v));\r
-  log(ttcn2string(t_rucs(tspt_ucs_mod4v)));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4v)) != "{ ucs := \"ABBA\" }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4o));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4o)) != "{ ucs := omit }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4a));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4a)) != "{ ucs := * }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4q));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4q)) != "{ ucs := ? }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4al1));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4al1)) != "{ ucs := * length (2) }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4al2));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4al2)) != "{ ucs := * length (2 .. 4) }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4ql1));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4ql1)) != "{ ucs := ? length (2) }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4ql2));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4ql2)) != "{ ucs := ? length (2 .. 4) }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(">",t_rucs(tspt_ucs_mod4vl1),"<");\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4vl1)) != "{ ucs := \"ABBA\" }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4vl2));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4vl2)) != "{ ucs := (char(0, 0, 0, 193) & \"d\" & char(0, 0, 0, 225) & \"m\", char(0, 0, 0, 201) & \"va\") }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4vl3));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4vl3)) != "{ ucs := (\"ABBA\", \"baba\", \"Bye\") }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4c1));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4c1)) != "{ ucs := complement (\"ABBA\") }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4c2));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4c2)) != "{ ucs := complement (\"ABBA\", \"baba\") }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4c3));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4c3)) != "{ ucs := complement (\"ABBA\", \"baba\", \"Bye\") }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4r1));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4r1)) != "{ ucs := (\"A\" .. \"B\") }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4r2));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4r2)) != "{ ucs := (\"a\" .. \"c\") }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4pa));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4pa)) != "{ ucs := pattern \"abc*xyz\" }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4pq));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4pq)) != "{ ucs := pattern \"abc?xyz\" }") {setverdict(fail)} else {setverdict(pass)};\r
-  //==\r
-  log(t_rucs(tspt_ucs_mod4vifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4vifp)) != "{ ucs := \"ABBA\" ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4oifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4oifp)) != "{ ucs := omit ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4aifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4aifp)) != "{ ucs := * ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4qifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4qifp)) != "{ ucs := ? ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4al1ifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4al1ifp)) != "{ ucs := * length (2) ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4al2ifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4al2ifp)) != "{ ucs := * length (2 .. 4) ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4ql1ifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4ql1ifp)) != "{ ucs := ? length (2) ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4ql2ifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4ql2ifp)) != "{ ucs := ? length (2 .. 4) ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4vl1ifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4vl1ifp)) != "{ ucs := \"ABBA\" ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4vl2ifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4vl2ifp)) != "{ ucs := (\"ABBA\", \"baba\") ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4vl3ifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4vl3ifp)) != "{ ucs := (\"ABBA\", \"baba\", \"Bye\") ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4c1ifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4c1ifp)) != "{ ucs := complement (\"ABBA\") ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4c2ifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4c2ifp)) != "{ ucs := complement (\"ABBA\", \"baba\") ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4c3ifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4c3ifp)) != "{ ucs := complement (\"ABBA\", \"baba\", \"Bye\") ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4r1ifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4r1ifp)) != "{ ucs := (\"A\" .. \"B\") ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4r2ifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4r2ifp)) != "{ ucs := (\"a\" .. \"c\") ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4paifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4paifp)) != "{ ucs := pattern \"abc*xyz\" ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-  log(t_rucs(tspt_ucs_mod4pqifp));\r
-  if(ttcn2string(t_rucs(tspt_ucs_mod4pqifp)) != "{ ucs := pattern \"abc?xyz\" ifpresent }") {setverdict(fail)} else {setverdict(pass)};\r
-}\r
-\r
-//==== string2ttcn testcases ===============================================================\r
-//These testcases tests if\r
-// 1. string2ttcn can generate the expected template\r
-// 2. string2ttcn can generate the expected value, if possible/required (=true the third arg)\r
-//===========================================================================================\r
-testcase tc_ucs_string2ttcn_mod4v() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4v)),t_rucs(tspt_ucs_mod4v));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4v)),t_rucs(tspt_ucs_mod4v),true);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4o() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4o)),t_rucs(tspt_ucs_mod4o));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4o)),t_rucs(tspt_ucs_mod4o),true);\r
-}\r
-\r
-//omit length\r
-testcase tc_ucs_string2ttcn_mod4ol() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4ol)),t_rucs(tspt_ucs_mod4ol));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4ol)),t_rucs(tspt_ucs_mod4ol),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4a() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4a)),t_rucs(tspt_ucs_mod4a));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4a)),t_rucs(tspt_ucs_mod4a),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4q() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4q)),t_rucs(tspt_ucs_mod4q));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4q)),t_rucs(tspt_ucs_mod4q),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4al1() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4al1)),t_rucs(tspt_ucs_mod4al1));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4al1)),t_rucs(tspt_ucs_mod4al1),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4al2() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4al2)),t_rucs(tspt_ucs_mod4al2));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4al2)),t_rucs(tspt_ucs_mod4al2),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4ql1() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4ql1)),t_rucs(tspt_ucs_mod4ql1));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4ql1)),t_rucs(tspt_ucs_mod4ql1),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4ql2() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4ql2)),t_rucs(tspt_ucs_mod4ql2));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4ql2)),t_rucs(tspt_ucs_mod4ql2),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4vl1() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4vl1)),t_rucs(tspt_ucs_mod4vl1));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4vl1)),t_rucs(tspt_ucs_mod4vl1),true);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4vl2() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4vl2)),t_rucs(tspt_ucs_mod4vl2));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4vl2)),t_rucs(tspt_ucs_mod4vl2),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4vl3() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4vl3)),t_rucs(tspt_ucs_mod4vl3));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4vl3)),t_rucs(tspt_ucs_mod4vl3),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4c1() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4c1)),t_rucs(tspt_ucs_mod4c1));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4c1)),t_rucs(tspt_ucs_mod4c1),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4c2() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4c2)),t_rucs(tspt_ucs_mod4c2));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4c2)),t_rucs(tspt_ucs_mod4c2),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4c3() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4c3)),t_rucs(tspt_ucs_mod4c3));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4c3)),t_rucs(tspt_ucs_mod4c3),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4r1() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4r1)),t_rucs(tspt_ucs_mod4r1));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4r1)),t_rucs(tspt_ucs_mod4r1),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4r2() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4r2)),t_rucs(tspt_ucs_mod4r2));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4r2)),t_rucs(tspt_ucs_mod4r2),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4pa() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4pa)),t_rucs(tspt_ucs_mod4pa));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4pa)),t_rucs(tspt_ucs_mod4pa),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4pq() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4pq)),t_rucs(tspt_ucs_mod4pq));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4pq)),t_rucs(tspt_ucs_mod4pq),false);\r
-}\r
-\r
-// ifp\r
-\r
-testcase tc_ucs_string2ttcn_mod4vifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4vifp)),t_rucs(tspt_ucs_mod4vifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4vifp)),t_rucs(tspt_ucs_mod4vifp),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4oifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4oifp)),t_rucs(tspt_ucs_mod4oifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4oifp)),t_rucs(tspt_ucs_mod4oifp),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4aifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4aifp)),t_rucs(tspt_ucs_mod4aifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4aifp)),t_rucs(tspt_ucs_mod4aifp),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4qifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4qifp)),t_rucs(tspt_ucs_mod4qifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4qifp)),t_rucs(tspt_ucs_mod4qifp),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4al1ifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4al1ifp)),t_rucs(tspt_ucs_mod4al1ifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4al1ifp)),t_rucs(tspt_ucs_mod4al1ifp),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4al2ifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4al2ifp)),t_rucs(tspt_ucs_mod4al2ifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4al2ifp)),t_rucs(tspt_ucs_mod4al2ifp),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4ql1ifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4ql1ifp)),t_rucs(tspt_ucs_mod4ql1ifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4ql1ifp)),t_rucs(tspt_ucs_mod4ql1ifp),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4ql2ifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4ql2ifp)),t_rucs(tspt_ucs_mod4ql2ifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4ql2ifp)),t_rucs(tspt_ucs_mod4ql2ifp),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4vl1ifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4vl1ifp)),t_rucs(tspt_ucs_mod4vl1ifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4vl1ifp)),t_rucs(tspt_ucs_mod4vl1ifp),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4vl2ifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4vl2ifp)),t_rucs(tspt_ucs_mod4vl2ifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4vl2ifp)),t_rucs(tspt_ucs_mod4vl2ifp),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4vl3ifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4vl3ifp)),t_rucs(tspt_ucs_mod4vl3ifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4vl3ifp)),t_rucs(tspt_ucs_mod4vl3ifp),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4c1ifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4c1ifp)),t_rucs(tspt_ucs_mod4c1ifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4c1ifp)),t_rucs(tspt_ucs_mod4c1ifp),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4c2ifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4c2ifp)),t_rucs(tspt_ucs_mod4c2ifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4c2ifp)),t_rucs(tspt_ucs_mod4c2ifp),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4c3ifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4c3ifp)),t_rucs(tspt_ucs_mod4c3ifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4c3ifp)),t_rucs(tspt_ucs_mod4c3ifp),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4r1ifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4r1ifp)),t_rucs(tspt_ucs_mod4r1ifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4r1ifp)),t_rucs(tspt_ucs_mod4r1ifp),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4r2ifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4r2ifp)),t_rucs(tspt_ucs_mod4r2ifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4r2ifp)),t_rucs(tspt_ucs_mod4r2ifp),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4paifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4paifp)),t_rucs(tspt_ucs_mod4paifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4paifp)),t_rucs(tspt_ucs_mod4paifp),false);\r
-}\r
-\r
-testcase tc_ucs_string2ttcn_mod4pqifp() runs on MC {\r
-  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4pqifp)),t_rucs(tspt_ucs_mod4pqifp));\r
-  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4pqifp)),t_rucs(tspt_ucs_mod4pqifp),false);\r
-}\r
-\r
-control { \r
-  \r
-  log("***universal charstring tests****");\r
-  //execute(tc_ucs_v());\r
-   //ttcn2string:\r
-  execute(tc_ucs_ttcn2string_emb());\r
-  \r
-  execute(tc_ucs_string2ttcn_mod4v());\r
-  execute(tc_ucs_string2ttcn_mod4o());\r
-  execute(tc_ucs_string2ttcn_mod4ol());\r
-  execute(tc_ucs_string2ttcn_mod4a());\r
-  execute(tc_ucs_string2ttcn_mod4q());\r
-  execute(tc_ucs_string2ttcn_mod4al1());\r
-  execute(tc_ucs_string2ttcn_mod4al2());\r
-  execute(tc_ucs_string2ttcn_mod4ql1());\r
-  execute(tc_ucs_string2ttcn_mod4ql2());\r
-  execute(tc_ucs_string2ttcn_mod4vl1());\r
-  execute(tc_ucs_string2ttcn_mod4vl2());\r
-  execute(tc_ucs_string2ttcn_mod4vl3());\r
-  execute(tc_ucs_string2ttcn_mod4c1());\r
-  execute(tc_ucs_string2ttcn_mod4c2());\r
-  execute(tc_ucs_string2ttcn_mod4c3());\r
-  execute(tc_ucs_string2ttcn_mod4r1());\r
-  execute(tc_ucs_string2ttcn_mod4r2());\r
-  execute(tc_ucs_string2ttcn_mod4pa());\r
-  execute(tc_ucs_string2ttcn_mod4pq());\r
-  //ttcn2string with ifpresent\r
-  execute(tc_ucs_string2ttcn_mod4vifp());\r
-  execute(tc_ucs_string2ttcn_mod4oifp());\r
-  execute(tc_ucs_string2ttcn_mod4aifp());\r
-  execute(tc_ucs_string2ttcn_mod4qifp());\r
-  execute(tc_ucs_string2ttcn_mod4al1ifp());\r
-  execute(tc_ucs_string2ttcn_mod4al2ifp());\r
-  execute(tc_ucs_string2ttcn_mod4ql1ifp());\r
-  execute(tc_ucs_string2ttcn_mod4ql2ifp());\r
-  execute(tc_ucs_string2ttcn_mod4vl1ifp());\r
-  execute(tc_ucs_string2ttcn_mod4vl2ifp());\r
-  execute(tc_ucs_string2ttcn_mod4vl3ifp());\r
-  execute(tc_ucs_string2ttcn_mod4c1ifp());\r
-  execute(tc_ucs_string2ttcn_mod4c2ifp());\r
-  execute(tc_ucs_string2ttcn_mod4c3ifp());\r
-  execute(tc_ucs_string2ttcn_mod4r1ifp());\r
-  execute(tc_ucs_string2ttcn_mod4r2ifp());\r
-  execute(tc_ucs_string2ttcn_mod4paifp());\r
-  execute(tc_ucs_string2ttcn_mod4pqifp()); \r
-  \r
-}\r
-\r
-} //module\r
+module ucharstring_test {
+//=========================================================================
+// Import Part
+//=========================================================================
+
+import from types all;
+import from functions all;
+
+//=========================================================================
+// Module Parameters
+//=========================================================================
+modulepar {
+  
+  //modulepar charstrings not modified from cfg file
+  template universal charstring tspt_ucs_v := "ABBA";
+  template universal charstring tspt_ucs_o := omit;
+  template universal charstring tspt_ucs_a := *;
+  template universal charstring tspt_ucs_q := ?;
+  template universal charstring tspt_ucs_al1 := * length(2); //length restriction
+  template universal charstring tspt_ucs_al2 := * length(2..4);
+  template universal charstring tspt_ucs_ql1 := ? length(2);
+  template universal charstring tspt_ucs_ql2 := ? length(2..4);
+  template universal charstring tspt_ucs_vl1 := ("ABBA");
+  template universal charstring tspt_ucs_vl2 := ("ABBA","baba");
+  template universal charstring tspt_ucs_vl3 := ("ABBA","baba","Bye");
+  template universal charstring tspt_ucs_c1 := complement("ABBA")
+  template universal charstring tspt_ucs_c2 := complement("ABBA","baba");
+  template universal charstring tspt_ucs_c3 := complement("ABBA","baba","Bye");
+  template universal charstring tspt_ucs_r1 := ("A".."B"); //range
+  template universal charstring tspt_ucs_r2 := ("a".."c");
+  template universal charstring tspt_ucs_pa := pattern "abc*xyz"
+  template universal charstring tspt_ucs_pq := pattern "abc?xyz"
+  
+  template universal charstring tspt_ucs_vifp := "ABBA" ifpresent;
+  template universal charstring tspt_ucs_oifp := omit ifpresent;
+  template universal charstring tspt_ucs_aifp := * ifpresent;
+  template universal charstring tspt_ucs_qifp := ? ifpresent;
+  template universal charstring tspt_ucs_al1ifp := * length(2) ifpresent; //length restriction
+  template universal charstring tspt_ucs_al2ifp := * length(2..4) ifpresent;
+  template universal charstring tspt_ucs_ql1ifp := ? length(2) ifpresent;
+  template universal charstring tspt_ucs_ql2ifp := ? length(2..4) ifpresent;
+  template universal charstring tspt_ucs_vl1ifp := ("ABBA") ifpresent;
+  template universal charstring tspt_ucs_vl2ifp := ("ABBA","baba") ifpresent;
+  template universal charstring tspt_ucs_vl3ifp := ("ABBA","baba","Bye") ifpresent;
+  template universal charstring tspt_ucs_c1ifp := complement("ABBA") ifpresent
+  template universal charstring tspt_ucs_c2ifp := complement("ABBA","baba") ifpresent;
+  template universal charstring tspt_ucs_c3ifp := complement("ABBA","baba","Bye") ifpresent;
+  template universal charstring tspt_ucs_r1ifp := ("A".."B") ifpresent; //range
+  template universal charstring tspt_ucs_r2ifp := ("a".."c") ifpresent;
+  template universal charstring tspt_ucs_paifp := pattern "abc*xyz"  ifpresent
+  template universal charstring tspt_ucs_pqifp := pattern "abc?xyz"  ifpresent  
+  
+  //modulepar universal charstrings modified from cfg file
+  template universal charstring tspt_ucs_mod4v := * //after mod:"ABBA";
+  template universal charstring tspt_ucs_mod4o := * //omit;
+  template universal charstring tspt_ucs_mod4ol := * //omit;
+  template universal charstring tspt_ucs_mod4a := "A" //*;
+  template universal charstring tspt_ucs_mod4q := "" //?;
+  template universal charstring tspt_ucs_mod4al1 := "A" //* length(2); //length restriction
+  template universal charstring tspt_ucs_mod4al2 := "Original" //mofified for: * length(2..4);
+  template universal charstring tspt_ucs_mod4ql1 := "Original" //mofified for:? length(2);
+  template universal charstring tspt_ucs_mod4ql2 := "Original" //mofified for:? length(2..4);
+  template universal charstring tspt_ucs_mod4vl1 := ("ABBA") //TODO: Adam //It should be mofified for: ("ABBA");
+  template universal charstring tspt_ucs_mod4vl2 := "Original" //mofified for:("ABBA","baba");
+  template universal charstring tspt_ucs_mod4vl3 := "Original" //mofified for:("ABBA","baba","Bye");
+  template universal charstring tspt_ucs_mod4c1 := "Original" //mofified for:complement("ABBA")
+  template universal charstring tspt_ucs_mod4c2 := "Original" //mofified for:complement("ABBA","baba");
+  template universal charstring tspt_ucs_mod4c3 := "Original" //mofified for:complement("ABBA","baba","Bye");
+  template universal charstring tspt_ucs_mod4r1 := "Original" //mofified for:("A".."B"); //range
+  template universal charstring tspt_ucs_mod4r2 := "Original" //mofified for:("a".."c");
+  template universal charstring tspt_ucs_mod4pa := "Original" //mofified for:pattern "abc*xyz"
+  template universal charstring tspt_ucs_mod4pq := "Original" //mofified for:pattern "abc?xyz"
+  
+  template universal charstring tspt_ucs_mod4vifp := "Original" //mofified for:"ABBA" ifpresent;
+  template universal charstring tspt_ucs_mod4oifp := "Original" //mofified for:omit ifpresent;
+  template universal charstring tspt_ucs_mod4aifp := "Original" //mofified for:* ifpresent;
+  template universal charstring tspt_ucs_mod4qifp := "Original" //mofified for:? ifpresent;
+  template universal charstring tspt_ucs_mod4al1ifp := "Original" //mofified for:* length(2) ifpresent; //length restriction
+  template universal charstring tspt_ucs_mod4al2ifp := "Original" //mofified for:* length(2..4) ifpresent;
+  template universal charstring tspt_ucs_mod4ql1ifp := "Original" //mofified for:? length(2) ifpresent;
+  template universal charstring tspt_ucs_mod4ql2ifp := "Original" //mofified for:? length(2..4) ifpresent;
+  template universal charstring tspt_ucs_mod4vl1ifp :=  ("ABBA") ifpresent //TODO: Adam //It should be mofified for: ("ABBA");
+  template universal charstring tspt_ucs_mod4vl2ifp := "Original" //mofified for:("ABBA","baba") ifpresent;
+  template universal charstring tspt_ucs_mod4vl3ifp := "Original" //mofified for:("ABBA","baba","Bye") ifpresent;
+  template universal charstring tspt_ucs_mod4c1ifp := "Original" //mofified for:complement("ABBA") ifpresent
+  template universal charstring tspt_ucs_mod4c2ifp := "Original" //mofified for:complement("ABBA","baba") ifpresent;
+  template universal charstring tspt_ucs_mod4c3ifp := "Original" //mofified for:complement("ABBA","baba","Bye") ifpresent;
+  template universal charstring tspt_ucs_mod4r1ifp := "Original" //mofified for:("A".."B") ifpresent; //range
+  template universal charstring tspt_ucs_mod4r2ifp := "Original" //mofified for:("a".."c") ifpresent;
+  template universal charstring tspt_ucs_mod4paifp := "Original" //mofified for:pattern "abc*xyz"  ifpresent
+  template universal charstring tspt_ucs_mod4pqifp := "Original" //mofified for:pattern "abc?xyz"  ifpresent  
+  
+}
+
+//=========================================================================
+// Templates
+//=========================================================================
+// not modulepars
+template universal charstring t_ucs_v := "ABBA";
+template universal charstring t_ucs_o := omit;
+template universal charstring t_ucs_a := *;
+template universal charstring t_ucs_q := ?;
+template universal charstring t_ucs_al1 := * length(2); //length restriction
+template universal charstring t_ucs_al2 := * length(2..4);
+template universal charstring t_ucs_ql1 := ? length(2);
+template universal charstring t_ucs_ql2 := ? length(2..4);
+template universal charstring t_ucs_vl1 := ("ABBA");
+template universal charstring t_ucs_vl2 := ("ABBA","baba");
+template universal charstring t_ucs_vl3 := ("ABBA","baba","Bye");
+template universal charstring t_ucs_c1 := complement("ABBA")
+template universal charstring t_ucs_c2 := complement("ABBA","baba");
+template universal charstring t_ucs_c3 := complement("ABBA","baba","Bye");
+template universal charstring t_ucs_r1 := ("A".."B"); //range
+template universal charstring t_ucs_r2 := ("a".."c");
+template universal charstring t_ucs_pa := pattern "abc*xyz"
+template universal charstring t_ucs_pq := pattern "abc?xyz"
+
+template universal charstring t_ucs_vifp := "ABBA" ifpresent;
+template universal charstring t_ucs_oifp := omit ifpresent;
+template universal charstring t_ucs_aifp := * ifpresent;
+template universal charstring t_ucs_qifp := ? ifpresent;
+template universal charstring t_ucs_al1ifp := * length(2) ifpresent; //length restriction
+template universal charstring t_ucs_al2ifp := * length(2..4) ifpresent;
+template universal charstring t_ucs_ql1ifp := ? length(2) ifpresent;
+template universal charstring t_ucs_ql2ifp := ? length(2..4) ifpresent;
+template universal charstring t_ucs_vl1ifp := ("ABBA") ifpresent;
+template universal charstring t_ucs_vl2ifp := ("ABBA","baba") ifpresent;
+template universal charstring t_ucs_vl3ifp := ("ABBA","baba","Bye") ifpresent;
+template universal charstring t_ucs_c1ifp := complement("ABBA") ifpresent
+template universal charstring t_ucs_c2ifp := complement("ABBA","baba") ifpresent;
+template universal charstring t_ucs_c3ifp := complement("ABBA","baba","Bye") ifpresent;
+template universal charstring t_ucs_r1ifp := ("A".."B") ifpresent; //range
+template universal charstring t_ucs_r2ifp := ("a".."c") ifpresent;
+template universal charstring t_ucs_paifp := pattern "abc*xyz"  ifpresent
+template universal charstring t_ucs_pqifp := pattern "abc?xyz"  ifpresent
+
+//=========================================================================
+// Functions
+//=========================================================================
+
+function f_string2ttcn_rucs_t(in charstring pl_cs, in template RUCS pl_expected_result) {
+  var template RUCS vl_result;
+  @try {
+    string2ttcn(pl_cs,vl_result);
+    setverdict(pass) 
+  }
+  @catch(err_str) {
+    log("string2ttcn() failed: ",err_str);
+    setverdict(fail);
+  }
+  log(pl_expected_result);
+  log(vl_result);
+  if( log2str(pl_expected_result) == log2str(vl_result) ) { setverdict(pass) } else { setverdict(fail) }
+}
+
+function f_string2ttcn_rucs_t_str(in charstring pl_cs, in charstring pl_expected_result) {
+  var template RUCS vl_result;
+  @try {
+    string2ttcn(pl_cs,vl_result);
+    setverdict(pass) 
+  }
+  @catch(err_str) {
+    log("str2ttcn() failed: ",err_str);
+    setverdict(fail);
+  }
+  log("Expected result: ", pl_expected_result);
+  log("Result: ", vl_result);
+  if( pl_expected_result == log2str(vl_result) ) { setverdict(pass) } else { setverdict(fail) }
+}
+
+//template string -> variable conversion
+//expected result: error
+function f_string2ttcn_rucs_v(in charstring pl_cs, in template RUCS pl_expected_result, in boolean pl_ok_expected) {
+  var RUCS vl_result;
+  if( pl_ok_expected ) {
+    @try {
+      string2ttcn(pl_cs, vl_result);
+      setverdict(pass);
+    }
+    @catch(err_str) {
+      log("string2ttcn() failed: ",err_str);
+      setverdict(fail);
+    }
+    if( log2str(pl_expected_result) == log2str(vl_result) ) { setverdict(pass) } else { setverdict(fail) }
+  } 
+  else 
+  {
+    @try {
+      string2ttcn(pl_cs, vl_result);
+      setverdict(fail);
+    }
+    @catch(err_str) {
+      log("string2ttcn() conversion error: ",err_str);
+      setverdict(pass,"Expected error, ok");
+    }
+    
+  }
+  log("Expected result: ",pl_expected_result );
+  log("Result: ", vl_result);
+}
+
+//this function is the same but uses
+function f_string2ttcn_rucs_v_str(in charstring pl_cs, charstring pl_expected_result, in boolean pl_ok_expected) {
+  var RUCS vl_result;
+  if( pl_ok_expected ) {
+    @try {
+      string2ttcn(pl_cs, vl_result);
+      setverdict(pass);
+    }
+    @catch(err_str) {
+      log("str2ttcn() failed: ",err_str);
+      setverdict(fail);
+    }
+    if( pl_expected_result == log2str(vl_result) ) { setverdict(pass) } else { setverdict(fail) }
+  } 
+  else 
+  {
+    @try {
+      string2ttcn(pl_cs, vl_result);
+      setverdict(fail);
+    }
+    @catch(err_str) {
+      log("str2ttcn() conversion error: ",err_str);
+      setverdict(pass,"Expected error, ok");
+    }
+    
+  }
+  log("Expected result: ", pl_expected_result );
+  log("Result: ", vl_result);
+}
+
+//=========================================================================
+// Testcases
+//=========================================================================
+
+testcase tc_ucs_ttcn2string_emb() runs on MC {
+  log(t_rucs(tspt_ucs_mod4v));
+  log(ttcn2string(t_rucs(tspt_ucs_mod4v)));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4v)) != "{ ucs := \"ABBA\" }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4o));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4o)) != "{ ucs := omit }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4a));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4a)) != "{ ucs := * }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4q));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4q)) != "{ ucs := ? }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4al1));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4al1)) != "{ ucs := * length (2) }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4al2));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4al2)) != "{ ucs := * length (2 .. 4) }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4ql1));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4ql1)) != "{ ucs := ? length (2) }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4ql2));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4ql2)) != "{ ucs := ? length (2 .. 4) }") {setverdict(fail)} else {setverdict(pass)};
+  log(">",t_rucs(tspt_ucs_mod4vl1),"<");
+  if(ttcn2string(t_rucs(tspt_ucs_mod4vl1)) != "{ ucs := \"ABBA\" }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4vl2));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4vl2)) != "{ ucs := (char(0, 0, 0, 193) & \"d\" & char(0, 0, 0, 225) & \"m\", char(0, 0, 0, 201) & \"va\") }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4vl3));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4vl3)) != "{ ucs := (\"ABBA\", \"baba\", \"Bye\") }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4c1));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4c1)) != "{ ucs := complement (\"ABBA\") }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4c2));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4c2)) != "{ ucs := complement (\"ABBA\", \"baba\") }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4c3));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4c3)) != "{ ucs := complement (\"ABBA\", \"baba\", \"Bye\") }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4r1));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4r1)) != "{ ucs := (\"A\" .. \"B\") }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4r2));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4r2)) != "{ ucs := (\"a\" .. \"c\") }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4pa));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4pa)) != "{ ucs := pattern \"abc*xyz\" }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4pq));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4pq)) != "{ ucs := pattern \"abc?xyz\" }") {setverdict(fail)} else {setverdict(pass)};
+  //==
+  log(t_rucs(tspt_ucs_mod4vifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4vifp)) != "{ ucs := \"ABBA\" ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4oifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4oifp)) != "{ ucs := omit ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4aifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4aifp)) != "{ ucs := * ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4qifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4qifp)) != "{ ucs := ? ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4al1ifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4al1ifp)) != "{ ucs := * length (2) ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4al2ifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4al2ifp)) != "{ ucs := * length (2 .. 4) ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4ql1ifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4ql1ifp)) != "{ ucs := ? length (2) ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4ql2ifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4ql2ifp)) != "{ ucs := ? length (2 .. 4) ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4vl1ifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4vl1ifp)) != "{ ucs := \"ABBA\" ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4vl2ifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4vl2ifp)) != "{ ucs := (\"ABBA\", \"baba\") ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4vl3ifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4vl3ifp)) != "{ ucs := (\"ABBA\", \"baba\", \"Bye\") ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4c1ifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4c1ifp)) != "{ ucs := complement (\"ABBA\") ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4c2ifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4c2ifp)) != "{ ucs := complement (\"ABBA\", \"baba\") ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4c3ifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4c3ifp)) != "{ ucs := complement (\"ABBA\", \"baba\", \"Bye\") ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4r1ifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4r1ifp)) != "{ ucs := (\"A\" .. \"B\") ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4r2ifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4r2ifp)) != "{ ucs := (\"a\" .. \"c\") ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4paifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4paifp)) != "{ ucs := pattern \"abc*xyz\" ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+  log(t_rucs(tspt_ucs_mod4pqifp));
+  if(ttcn2string(t_rucs(tspt_ucs_mod4pqifp)) != "{ ucs := pattern \"abc?xyz\" ifpresent }") {setverdict(fail)} else {setverdict(pass)};
+}
+
+//==== string2ttcn testcases ===============================================================
+//These testcases tests if
+// 1. string2ttcn can generate the expected template
+// 2. string2ttcn can generate the expected value, if possible/required (=true the third arg)
+//===========================================================================================
+testcase tc_ucs_string2ttcn_mod4v() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4v)),t_rucs(tspt_ucs_mod4v));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4v)),t_rucs(tspt_ucs_mod4v),true);
+}
+
+testcase tc_ucs_string2ttcn_mod4o() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4o)),t_rucs(tspt_ucs_mod4o));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4o)),t_rucs(tspt_ucs_mod4o),true);
+}
+
+//omit length
+testcase tc_ucs_string2ttcn_mod4ol() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4ol)),t_rucs(tspt_ucs_mod4ol));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4ol)),t_rucs(tspt_ucs_mod4ol),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4a() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4a)),t_rucs(tspt_ucs_mod4a));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4a)),t_rucs(tspt_ucs_mod4a),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4q() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4q)),t_rucs(tspt_ucs_mod4q));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4q)),t_rucs(tspt_ucs_mod4q),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4al1() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4al1)),t_rucs(tspt_ucs_mod4al1));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4al1)),t_rucs(tspt_ucs_mod4al1),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4al2() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4al2)),t_rucs(tspt_ucs_mod4al2));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4al2)),t_rucs(tspt_ucs_mod4al2),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4ql1() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4ql1)),t_rucs(tspt_ucs_mod4ql1));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4ql1)),t_rucs(tspt_ucs_mod4ql1),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4ql2() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4ql2)),t_rucs(tspt_ucs_mod4ql2));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4ql2)),t_rucs(tspt_ucs_mod4ql2),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4vl1() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4vl1)),t_rucs(tspt_ucs_mod4vl1));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4vl1)),t_rucs(tspt_ucs_mod4vl1),true);
+}
+
+testcase tc_ucs_string2ttcn_mod4vl2() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4vl2)),t_rucs(tspt_ucs_mod4vl2));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4vl2)),t_rucs(tspt_ucs_mod4vl2),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4vl3() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4vl3)),t_rucs(tspt_ucs_mod4vl3));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4vl3)),t_rucs(tspt_ucs_mod4vl3),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4c1() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4c1)),t_rucs(tspt_ucs_mod4c1));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4c1)),t_rucs(tspt_ucs_mod4c1),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4c2() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4c2)),t_rucs(tspt_ucs_mod4c2));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4c2)),t_rucs(tspt_ucs_mod4c2),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4c3() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4c3)),t_rucs(tspt_ucs_mod4c3));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4c3)),t_rucs(tspt_ucs_mod4c3),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4r1() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4r1)),t_rucs(tspt_ucs_mod4r1));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4r1)),t_rucs(tspt_ucs_mod4r1),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4r2() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4r2)),t_rucs(tspt_ucs_mod4r2));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4r2)),t_rucs(tspt_ucs_mod4r2),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4pa() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4pa)),t_rucs(tspt_ucs_mod4pa));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4pa)),t_rucs(tspt_ucs_mod4pa),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4pq() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4pq)),t_rucs(tspt_ucs_mod4pq));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4pq)),t_rucs(tspt_ucs_mod4pq),false);
+}
+
+// ifp
+
+testcase tc_ucs_string2ttcn_mod4vifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4vifp)),t_rucs(tspt_ucs_mod4vifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4vifp)),t_rucs(tspt_ucs_mod4vifp),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4oifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4oifp)),t_rucs(tspt_ucs_mod4oifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4oifp)),t_rucs(tspt_ucs_mod4oifp),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4aifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4aifp)),t_rucs(tspt_ucs_mod4aifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4aifp)),t_rucs(tspt_ucs_mod4aifp),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4qifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4qifp)),t_rucs(tspt_ucs_mod4qifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4qifp)),t_rucs(tspt_ucs_mod4qifp),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4al1ifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4al1ifp)),t_rucs(tspt_ucs_mod4al1ifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4al1ifp)),t_rucs(tspt_ucs_mod4al1ifp),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4al2ifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4al2ifp)),t_rucs(tspt_ucs_mod4al2ifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4al2ifp)),t_rucs(tspt_ucs_mod4al2ifp),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4ql1ifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4ql1ifp)),t_rucs(tspt_ucs_mod4ql1ifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4ql1ifp)),t_rucs(tspt_ucs_mod4ql1ifp),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4ql2ifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4ql2ifp)),t_rucs(tspt_ucs_mod4ql2ifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4ql2ifp)),t_rucs(tspt_ucs_mod4ql2ifp),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4vl1ifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4vl1ifp)),t_rucs(tspt_ucs_mod4vl1ifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4vl1ifp)),t_rucs(tspt_ucs_mod4vl1ifp),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4vl2ifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4vl2ifp)),t_rucs(tspt_ucs_mod4vl2ifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4vl2ifp)),t_rucs(tspt_ucs_mod4vl2ifp),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4vl3ifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4vl3ifp)),t_rucs(tspt_ucs_mod4vl3ifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4vl3ifp)),t_rucs(tspt_ucs_mod4vl3ifp),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4c1ifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4c1ifp)),t_rucs(tspt_ucs_mod4c1ifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4c1ifp)),t_rucs(tspt_ucs_mod4c1ifp),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4c2ifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4c2ifp)),t_rucs(tspt_ucs_mod4c2ifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4c2ifp)),t_rucs(tspt_ucs_mod4c2ifp),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4c3ifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4c3ifp)),t_rucs(tspt_ucs_mod4c3ifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4c3ifp)),t_rucs(tspt_ucs_mod4c3ifp),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4r1ifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4r1ifp)),t_rucs(tspt_ucs_mod4r1ifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4r1ifp)),t_rucs(tspt_ucs_mod4r1ifp),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4r2ifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4r2ifp)),t_rucs(tspt_ucs_mod4r2ifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4r2ifp)),t_rucs(tspt_ucs_mod4r2ifp),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4paifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4paifp)),t_rucs(tspt_ucs_mod4paifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4paifp)),t_rucs(tspt_ucs_mod4paifp),false);
+}
+
+testcase tc_ucs_string2ttcn_mod4pqifp() runs on MC {
+  f_string2ttcn_rucs_t(ttcn2string(t_rucs(tspt_ucs_mod4pqifp)),t_rucs(tspt_ucs_mod4pqifp));
+  f_string2ttcn_rucs_v(ttcn2string(t_rucs(tspt_ucs_mod4pqifp)),t_rucs(tspt_ucs_mod4pqifp),false);
+}
+
+control { 
+  
+  log("***universal charstring tests****");
+  //execute(tc_ucs_v());
+   //ttcn2string:
+  execute(tc_ucs_ttcn2string_emb());
+  
+  execute(tc_ucs_string2ttcn_mod4v());
+  execute(tc_ucs_string2ttcn_mod4o());
+  execute(tc_ucs_string2ttcn_mod4ol());
+  execute(tc_ucs_string2ttcn_mod4a());
+  execute(tc_ucs_string2ttcn_mod4q());
+  execute(tc_ucs_string2ttcn_mod4al1());
+  execute(tc_ucs_string2ttcn_mod4al2());
+  execute(tc_ucs_string2ttcn_mod4ql1());
+  execute(tc_ucs_string2ttcn_mod4ql2());
+  execute(tc_ucs_string2ttcn_mod4vl1());
+  execute(tc_ucs_string2ttcn_mod4vl2());
+  execute(tc_ucs_string2ttcn_mod4vl3());
+  execute(tc_ucs_string2ttcn_mod4c1());
+  execute(tc_ucs_string2ttcn_mod4c2());
+  execute(tc_ucs_string2ttcn_mod4c3());
+  execute(tc_ucs_string2ttcn_mod4r1());
+  execute(tc_ucs_string2ttcn_mod4r2());
+  execute(tc_ucs_string2ttcn_mod4pa());
+  execute(tc_ucs_string2ttcn_mod4pq());
+  //ttcn2string with ifpresent
+  execute(tc_ucs_string2ttcn_mod4vifp());
+  execute(tc_ucs_string2ttcn_mod4oifp());
+  execute(tc_ucs_string2ttcn_mod4aifp());
+  execute(tc_ucs_string2ttcn_mod4qifp());
+  execute(tc_ucs_string2ttcn_mod4al1ifp());
+  execute(tc_ucs_string2ttcn_mod4al2ifp());
+  execute(tc_ucs_string2ttcn_mod4ql1ifp());
+  execute(tc_ucs_string2ttcn_mod4ql2ifp());
+  execute(tc_ucs_string2ttcn_mod4vl1ifp());
+  execute(tc_ucs_string2ttcn_mod4vl2ifp());
+  execute(tc_ucs_string2ttcn_mod4vl3ifp());
+  execute(tc_ucs_string2ttcn_mod4c1ifp());
+  execute(tc_ucs_string2ttcn_mod4c2ifp());
+  execute(tc_ucs_string2ttcn_mod4c3ifp());
+  execute(tc_ucs_string2ttcn_mod4r1ifp());
+  execute(tc_ucs_string2ttcn_mod4r2ifp());
+  execute(tc_ucs_string2ttcn_mod4paifp());
+  execute(tc_ucs_string2ttcn_mod4pqifp()); 
+  
+}
+
+} //module
This page took 0.048755 seconds and 5 git commands to generate.