diff --git a/regression_test/RAW/Makefile b/regression_test/RAW/Makefile
index 8726fd4373e506b69c16c7fa8e8a1a0b537373f0..319a4e5b78dc35e73e79db678ee058c12bddfda2 100644
--- a/regression_test/RAW/Makefile
+++ b/regression_test/RAW/Makefile
@@ -18,7 +18,7 @@
 TOPDIR := ..
 include $(TOPDIR)/Makefile.regression
 
-RDIRS = Examples HN25015 HQ26535 HQ49956 HS16977 ustr Annex_E_variants Bug521125 Lengthto_Offset Bug522656
+RDIRS = Examples HN25015 HQ26535 HQ49956 HS16977 ustr Annex_E_variants Bug521125 Lengthto_Offset Bug522656 RAW_integer
 
 all dep clean run distclean:
 	for dir in $(RDIRS); do (cd $$dir && $(MAKE) $@) || exit; done
diff --git a/regression_test/RAW/RAW_integer/.gitignore b/regression_test/RAW/RAW_integer/.gitignore
new file mode 100755
index 0000000000000000000000000000000000000000..dc50f0e5286b01f1f5ffed1ba3e04f9967a4acd9
--- /dev/null
+++ b/regression_test/RAW/RAW_integer/.gitignore
@@ -0,0 +1,6 @@
+RAW_integer_test
+RAW_integer_test.exe
+RAW_integer_test*.cc
+RAW_integer_test*.hh
+RAW_integer_test*.log
+compile
diff --git a/regression_test/RAW/RAW_integer/Makefile b/regression_test/RAW/RAW_integer/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..37899648d4272a76d7328f12cf2d9edcfedffdce
--- /dev/null
+++ b/regression_test/RAW/RAW_integer/Makefile
@@ -0,0 +1,63 @@
+##############################################################################
+# Copyright (c) 2000-2018 Ericsson Telecom AB
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
+#
+# Contributors:
+#   Balasko, Jeno
+#
+##############################################################################
+TOPDIR := ../..
+include $(TOPDIR)/Makefile.regression
+
+.PHONY: all clean dep run
+
+TTCN3_LIB = ttcn3$(RT2_SUFFIX)$(DYNAMIC_SUFFIX)
+
+TTCN3_MODULES = RAW_integer_test.ttcn
+
+GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc)
+GENERATED_HEADERS = $(GENERATED_SOURCES:.cc=.hh)
+ifdef CODE_SPLIT
+GENERATED_SOURCES := $(foreach file, $(GENERATED_SOURCES:.cc=), $(addprefix $(file), .cc _seq.cc _set.cc  _seqof.cc _setof.cc _union.cc))
+else ifdef SPLIT_TO_SLICES
+POSTFIXES := $(foreach file, $(SPLIT_TO_SLICES), $(addsuffix $(file), _part_))
+POSTFIXES := $(foreach file, $(POSTFIXES), $(addprefix $(file), .cc))
+GENERATED_SOURCES2 := $(foreach file, $(GENERATED_SOURCES:.cc=), $(addprefix $(file), $(POSTFIXES)))
+GENERATED_SOURCES += $(GENERATED_SOURCES2)
+endif
+
+USER_SOURCES =
+
+# All object files needed for the executable test suite:
+OBJECTS = $(GENERATED_SOURCES:.cc=.o) $(USER_SOURCES:.cc=.o)
+
+# The name of the executable test suite:
+TARGET = RAW_integer_test$(EXESUFFIX)
+
+all: $(TARGET) ;
+
+$(TARGET): $(OBJECTS)
+	$(CXX) $(LDFLAGS) -o $@ $(OBJECTS) -L$(TTCN3_DIR)/lib -l$(TTCN3_LIB) \
+	-L$(OPENSSL_DIR)/lib -lcrypto $($(PLATFORM)_LIBS)
+
+$(GENERATED_SOURCES) $(GENERATED_HEADERS): compile
+	@if [ ! -f $@ ]; then $(RM) compile; $(MAKE) compile; fi
+
+compile: $(TTCN3_MODULES) $(ASN1_MODULES)
+	$(TTCN3_COMPILER) $(COMPILER_FLAGS) $^
+	touch $@
+
+clean distclean:
+	$(RM) $(TARGET) $(OBJECTS) $(GENERATED_HEADERS) \
+	$(GENERATED_SOURCES) compile *.log
+
+dep: $(GENERATED_SOURCES)
+	makedepend $(CPPFLAGS) $(USER_SOURCES) $(GENERATED_SOURCES)
+
+run: $(TARGET) RAW_integer_test.cfg
+	./$^
+
+# DO NOT DELETE
diff --git a/regression_test/RAW/RAW_integer/RAW_integer_test.cfg b/regression_test/RAW/RAW_integer/RAW_integer_test.cfg
new file mode 100755
index 0000000000000000000000000000000000000000..672c1e0bcd1f13206439f115e4ee1911b5b1ed68
--- /dev/null
+++ b/regression_test/RAW/RAW_integer/RAW_integer_test.cfg
@@ -0,0 +1,18 @@
+###############################################################################
+# Copyright (c) 2000-2018 Ericsson Telecom AB
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
+#
+# Contributors:
+#   Balasko, Jeno
+#
+###############################################################################
+[LOGGING]
+LogFile := "RAW_integer_test.log"
+FileMask := LOG_ALL
+ConsoleMask := TTCN_ERROR | TTCN_TESTCASE | TTCN_STATISTICS
+LogSourceInfo := Yes
+[EXECUTE]
+RAW_integer_test.control
diff --git a/regression_test/RAW/RAW_integer/RAW_integer_test.ttcn b/regression_test/RAW/RAW_integer/RAW_integer_test.ttcn
new file mode 100755
index 0000000000000000000000000000000000000000..94363cefc2ba0fd191543cbf6ece9aa0d77d7478
--- /dev/null
+++ b/regression_test/RAW/RAW_integer/RAW_integer_test.ttcn
@@ -0,0 +1,1049 @@
+/******************************************************************************
+ * Copyright (c) 2000-2018 Ericsson Telecom AB
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
+ *
+ * Contributors:
+ *   Balasko, Jeno – initial implementation
+ *
+ ******************************************************************************/
+
+//These tests extends the base RAW integer tests.
+//They are developed to give simple, easily separable function tests to the ttcn2java compiler
+
+module RAW_integer_test {
+
+type component CT {}
+
+//=========================================================
+//       Types
+//=========================================================
+
+//FIELDLENGTH(N), BITORDERINFIELD default (lsb), 
+type integer PDU1 //default: variant ""
+type integer PDU2 with {variant ""}
+type integer PDU3 with {variant "FIELDLENGTH(8)"}
+type integer PDU4 with {variant "FIELDLENGTH(16)"}
+type integer PDU5 with {variant "FIELDLENGTH(24)"}
+type integer PDU6 with {variant "FIELDLENGTH(32)"}
+type integer PDU7 with {variant "FIELDLENGTH(64)"}
+type integer PDU8 with {variant "FIELDLENGTH(128)"}
+
+//FIELDLENGTH(N), BITORDERINFIELD lsb
+type integer PDU13 with {variant "FIELDLENGTH(8), BITORDERINFIELD(lsb)"}
+type integer PDU14 with {variant "FIELDLENGTH(16), BITORDERINFIELD(lsb)"}
+type integer PDU15 with {variant "FIELDLENGTH(16), BITORDERINFIELD(lsb), BYTEORDER(last)"}
+type integer PDU16 with {variant "FIELDLENGTH(16), BITORDERINFIELD(lsb), BYTEORDER(first)"}
+
+//FIELDLENGTH(N), BITORDERINFIELD msb
+type integer PDU23 with {variant "FIELDLENGTH(8), BITORDERINFIELD(msb)"}
+type integer PDU24 with {variant "FIELDLENGTH(16), BITORDERINFIELD(msb)"}
+
+type integer PDU25 with {variant "FIELDLENGTH(8), BITORDER(msb)"}
+type integer PDU26 with {variant "FIELDLENGTH(16), BITORDER(msb), BYTEORDER(last)"}
+
+//COMP
+type integer PDU31 with {variant "FIELDLENGTH(8), COMP(nosign)"}
+type integer PDU32 with {variant "FIELDLENGTH(8), COMP(2scompl)"}
+type integer PDU33 with {variant "FIELDLENGTH(8), COMP(signbit)"}
+type integer PDU34 with {variant "FIELDLENGTH(16), COMP(nosign)"}
+type integer PDU35 with {variant "FIELDLENGTH(16), COMP(2scompl)"}
+type integer PDU36 with {variant "FIELDLENGTH(16), COMP(signbit)"}
+
+//N bit /unsigned N bit
+type integer PDU41 with {variant "8 bit"} // byteorder last, signbit,
+type integer PDU42 with {variant "unsigned 8 bit"} // byteorder last, nosign,
+type integer PDU43 with {variant "16 bit"} // byteorder last, signbit,
+type integer PDU44 with {variant "unsigned 16 bit"} // byteorder last, nosign,
+
+//BYTEORDER
+//first: the first octet placed first into the buffer
+//last: the last octet placed first into the buffer
+//default: first
+//see PDU16
+
+//IntX  (see4.23.4.7 of the referenceguide.pdf)
+//default:
+//BITORDER: msb, BYTEORDER:first, LENGTHTO: dynamic
+type integer PDU51 with {variant "IntX"}
+//type integer PDU52 with {variant }
+//TODO: IntX with COMP
+//TODO: IntX restrictions
+
+//===========
+// Record ofs
+//===========
+type record of octetstring RoOS;
+type record of PDU1 RoPDU1;
+type record of PDU2 RoPDU2;
+type record of PDU3 RoPDU3;
+type record of PDU4 RoPDU4
+type record of PDU5 RoPDU5
+type record of PDU6 RoPDU6 
+type record of PDU7 RoPDU7 
+type record of PDU8 RoPDU8
+
+//FIELDLENGTH(N), BITORDERINFIELD lsb
+type record of PDU13 RoPDU13
+type record of PDU14 RoPDU14
+type record of PDU15 RoPDU15
+type record of PDU16 RoPDU16
+
+//FIELDLENGTH(N), BITORDERINFIELD msb
+type record of PDU23 RoPDU23
+type record of PDU24 RoPDU24
+type record of PDU25 RoPDU25
+type record of PDU26 RoPDU26
+
+//COMP
+type record of PDU31 RoPDU31
+type record of PDU32 RoPDU32
+type record of PDU33 RoPDU33
+type record of PDU34 RoPDU34
+type record of PDU35 RoPDU35
+type record of PDU36 RoPDU36
+//
+type record of PDU41 RoPDU41
+type record of PDU42 RoPDU42
+type record of PDU43 RoPDU43
+type record of PDU44 RoPDU44
+
+type record of PDU44 RoPDU51
+//=========================================================
+//       Encoder/decoder functions
+//=========================================================
+
+external function enc_PDU1(in PDU1 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU1(in octetstring os) return PDU1
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU2(in PDU2 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU2(in octetstring os) return PDU2
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU3(in PDU3 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU3(in octetstring os) return PDU3
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU4(in PDU4 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU4(in octetstring os) return PDU4
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU5(in PDU5 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU5(in octetstring os) return PDU5
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU6(in PDU6 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU6(in octetstring os) return PDU6
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU7(in PDU7 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU7(in octetstring os) return PDU7
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU8(in PDU8 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU8(in octetstring os) return PDU8
+with { extension "prototype(convert) decode(RAW)"}
+
+
+//FIELDLENGTH(N), BITORDERINFIELD lsb
+external function enc_PDU13(in PDU13 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU13(in octetstring os) return PDU13
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU14(in PDU14 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU14(in octetstring os) return PDU14
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU15(in PDU15 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU15(in octetstring os) return PDU15
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU16(in PDU16 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU16(in octetstring os) return PDU16
+with { extension "prototype(convert) decode(RAW)"}
+
+//FIELDLENGTH(N), BITORDERINFIELD msb
+external function enc_PDU23(in PDU23 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU23(in octetstring os) return PDU23
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU24(in PDU24 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU24(in octetstring os) return PDU24
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU25(in PDU25 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU25(in octetstring os) return PDU25
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU26(in PDU26 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU26(in octetstring os) return PDU26
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU31(in PDU31 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU31(in octetstring os) return PDU31
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU32(in PDU32 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU32(in octetstring os) return PDU32
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU33(in PDU33 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU33(in octetstring os) return PDU33
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU34(in PDU34 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU34(in octetstring os) return PDU34
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU35(in PDU35 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU35(in octetstring os) return PDU35
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU36(in PDU36 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU36(in octetstring os) return PDU36
+with { extension "prototype(convert) decode(RAW)"}
+
+//N bit /unsigned N bit
+external function enc_PDU41(in PDU41 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU41(in octetstring os) return PDU41
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU42(in PDU42 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU42(in octetstring os) return PDU42
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU43(in PDU43 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU43(in octetstring os) return PDU43
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU44(in PDU44 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU44(in octetstring os) return PDU44
+with { extension "prototype(convert) decode(RAW)"}
+
+external function enc_PDU51(in PDU51 pdu) return octetstring
+with { extension "prototype(convert) encode(RAW)"}
+external function dec_PDU51(in octetstring os) return PDU51
+with { extension "prototype(convert) decode(RAW)"}
+//=========================================================
+//         Testcases
+//=========================================================
+
+testcase tc_raw_int_default1() runs on CT {
+  var PDU1 vl_pdu1 := 1;
+  var octetstring vl_result := enc_PDU1(vl_pdu1);
+  var octetstring vl_expected := '01'O;
+  log( vl_result);
+  if(vl_result != vl_expected) { 
+    setverdict(fail,"Expected:", vl_expected," got:", vl_result);
+  }
+  if( dec_PDU1(vl_expected) != vl_pdu1){
+    setverdict(fail,"Expected:", vl_pdu1," got:", dec_PDU1(vl_expected));
+  }
+  log(dec_PDU1(vl_expected));
+  setverdict(pass);
+}
+
+const PDU1 c_pdu1 := 1;
+testcase tc_raw_int_default2() runs on CT {
+  //  var PDU1 vl_pdu1 := 1;
+  var octetstring vl_result := enc_PDU1(c_pdu1);
+  var octetstring vl_expected := '01'O;
+  log( vl_result);
+  if(vl_result != vl_expected) { 
+    setverdict(fail,"Expected:", vl_expected," got:", vl_result);
+  }
+  if( dec_PDU1(vl_expected) != c_pdu1){
+    setverdict(fail,"Expected:", c_pdu1," got:", dec_PDU1(vl_expected));
+  }
+  log(dec_PDU1(vl_expected));
+  setverdict(pass);
+}
+
+testcase tc_raw_int_default3() runs on CT {
+  var PDU1 vl_pdu1 := 256; //too big
+  @try {
+    var octetstring vl_result := enc_PDU1(vl_pdu1);
+    setverdict(fail,"This line should not be reached, expected:DTE");
+  } @catch(e){
+    setverdict(pass, "Caught the expected DTE (While RAW-encoding type '@RAW_integer_test.PDU1': There are insufficient bits to encode '@RAW_integer_test.PDU1') got:", e);
+  }
+
+  //log( dec_PDU1('0100'O) ); real result: 1, expected :???
+  //setverdict(fail,"Expected:", dec_PDU1('0100'O));
+  setverdict(pass);
+}
+
+//default: FIELDLENGTH(8), BITORDERINFIELD(lsb), BYTEORDER(first): for integer the least significant byte is the leftmost
+testcase tc_raw_int_default1_seq() runs on CT {
+  var RoPDU1 vl_pdu1s := {1,15,16,255};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'01'O,'0F'O,'10'O,'FF'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU1(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU1(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU1(vl_expected[i]));
+    }
+    log(dec_PDU1(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+testcase tc_raw_int_FIELDLENGTH8_seq() runs on CT {
+  var RoPDU3 vl_pdu1s := {1,15,16,255};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'01'O,'0F'O,'10'O,'FF'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU3(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU3(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU3(vl_expected[i]));
+    }
+    log(dec_PDU3(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+//Status: wrong, the enc_PDU3 should not accept the args of type PDU4 (???)
+testcase tc_raw_int_FIELDLENGTH16_seq_wrong() runs on CT {
+  var RoPDU4 vl_pdu1s := {1,15,16,255};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'01'O,'0F'O,'10'O,'FF'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU3(vl_pdu1s[i]); 
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU3(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU3(vl_expected[i]));
+      log("Expected:", vl_pdu1s[i]," got:", dec_PDU3(vl_expected[i]));
+    }
+    log(dec_PDU3(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+//default byte order: first encoded byte-> result[0]
+testcase tc_raw_int_FIELDLENGTH16_seq() runs on CT {
+  var RoPDU4 vl_pdu1s := {1,15,16,255,256,4660};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'0100'O,'0F00'O,'1000'O,'FF00'O,'0001'O,'3412'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU4(vl_pdu1s[i]); //expected: semantic error (???)
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result); 
+    }
+    if( dec_PDU4(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU4(vl_expected[i]));
+    }
+    log(dec_PDU4(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+//default byte order: first encoded byte-> result[0]
+testcase tc_raw_int_FIELDLENGTH24_seq() runs on CT {
+  var RoPDU5 vl_pdu1s := {1,15,16,255,256,4660};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'010000'O,'0F0000'O,'100000'O,'FF0000'O,'000100'O,'341200'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU5(vl_pdu1s[i]); //expected: semantic error (???)
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result); 
+    }
+    if( dec_PDU5(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU5(vl_expected[i]));
+    }
+    log(dec_PDU5(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+//default byte order: first encoded byte-> result[0]
+testcase tc_raw_int_FIELDLENGTH32_seq() runs on CT {
+  var RoPDU6 vl_pdu1s := {1,15,16,255,256,4660};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'01000000'O,'0F000000'O,'10000000'O,'FF000000'O,'00010000'O,'34120000'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU6(vl_pdu1s[i]); //expected: semantic error (???)
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result); 
+    }
+    if( dec_PDU6(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU6(vl_expected[i]));
+    }
+    log(dec_PDU6(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+//default byte order: first encoded byte-> result[0]
+testcase tc_raw_int_FIELDLENGTH64_seq() runs on CT {
+  var RoPDU7 vl_pdu1s := {1,15,16,255,256,4660};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'0100 0000 0000 0000'O,'0F00 0000 0000 0000'O,'1000 0000 0000 0000'O,'FF00 0000 0000 0000'O,'0001 0000 0000 0000'O,'3412 0000 0000 0000'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU7(vl_pdu1s[i]); //expected: semantic error (???)
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result); 
+    }
+    if( dec_PDU7(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU7(vl_expected[i]));
+    }
+    log(dec_PDU7(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+//default byte order: first encoded byte-> result[0]
+testcase tc_raw_int_FIELDLENGTH128_seq() runs on CT {
+  var RoPDU8 vl_pdu1s := {1,15,16,255,256,4660, 81985529216486895 } //old:1311768467463790320};
+  var octetstring vl_result;
+  var RoOS vl_expected := {
+    '0100 0000 0000 0000 0000 0000 0000 0000'O,
+    '0F00 0000 0000 0000 0000 0000 0000 0000'O,
+    '1000 0000 0000 0000 0000 0000 0000 0000'O,
+    'FF00 0000 0000 0000 0000 0000 0000 0000'O,
+    '0001 0000 0000 0000 0000 0000 0000 0000'O,
+    '3412 0000 0000 0000 0000 0000 0000 0000'O,
+    'EFCD AB89 6745 2301 0000 0000 0000 0000'O
+    //'F0DE BC9A 7856 3412 0000 0000 0000 0000'O
+  };
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU8(vl_pdu1s[i]); //expected: semantic error (???)
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result); 
+    }
+    if( dec_PDU8(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU8(vl_expected[i]));
+    }
+    log(dec_PDU8(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+//=== lsb ===
+testcase tc_raw_int_FIELDLENGTH8_lsb_seq() runs on CT {
+  var RoPDU13 vl_pdu1s := {1,15,16,255};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'01'O,'0F'O,'10'O,'FF'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU13(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU13(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU13(vl_expected[i]));
+    }
+    log(dec_PDU13(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+//default byte order: first encoded byte-> result[0]
+testcase tc_raw_int_FIELDLENGTH16_lsb_seq() runs on CT {
+  var RoPDU14 vl_pdu1s := {1,15,16,255,256,4660};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'0100'O,'0F00'O,'1000'O,'FF00'O,'0001'O,'3412'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU14(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result); 
+    }
+    if( dec_PDU14(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU14(vl_expected[i]));
+    }
+    log(dec_PDU14(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+// byte order: last encoded byte-> result[0]
+testcase tc_raw_int_FIELDLENGTH16_lsb_last_seq() runs on CT {
+  var RoPDU15 vl_pdu1s := {1,15,16,255,256,4660};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'0001'O,'000F'O,'0010'O,'00FF'O,'0100'O,'1234'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU15(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result); 
+    }
+    if( dec_PDU15(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU15(vl_expected[i]));
+    }
+    log(dec_PDU15(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+// byte order: first encoded byte-> result[0]
+testcase tc_raw_int_FIELDLENGTH16_lsb_first_seq() runs on CT {
+  var RoPDU16 vl_pdu1s := {1,15,16,255,256,4660};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'0100'O,'0F00'O,'1000'O,'FF00'O,'0001'O,'3412'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU16(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+      log("Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU16(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU16(vl_expected[i]));
+    }
+    log(dec_PDU16(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+//=== msb ===
+testcase tc_raw_int_FIELDLENGTH8_msb_seq() runs on CT {
+  var RoPDU23 vl_pdu1s := {1,15,16,255};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'80'O,'F0'O,'08'O,'FF'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU23(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU23(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU23(vl_expected[i]));
+    }
+    log(dec_PDU23(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+//default byte order: first encoded byte-> result[0], lsb -> os[0]
+testcase tc_raw_int_FIELDLENGTH16_msb_seq() runs on CT {
+  var RoPDU24 vl_pdu1s := {1,15,16,255,256,4660};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'0080'O,'00F0'O,'0008'O,'00FF'O,'8000'O,'482C'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU24(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result); 
+    }
+    if( dec_PDU24(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU24(vl_expected[i]));
+    }
+    log(dec_PDU24(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+testcase tc_raw_int_FIELDLENGTH8_bitorder_seq() runs on CT {
+  var RoPDU25 vl_pdu1s := {1,15,16,255};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'80'O,'F0'O,'08'O,'FF'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU25(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU25(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU25(vl_expected[i]));
+    }
+    log(dec_PDU25(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+//FIELDLENGTH(16), BITORDER(msb), BYTEORDER(last)
+testcase tc_raw_int_FIELDLENGTH16_byteorder_seq() runs on CT {
+  var RoPDU26 vl_pdu1s := {1,15,16,255,256,4660};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'0080'O,'00F0'O,'0008'O,'00FF'O,'8000'O,'482C'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU26(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU26(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU26(vl_expected[i]));
+    }
+    log(dec_PDU26(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+//COMP tests
+testcase tc_raw_int_FIELDLENGTH8_comp_nosign_seq() runs on CT {
+  var RoPDU31 vl_pdu1s := {1,15,16,255};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'01'O,'0F'O,'10'O,'FF'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU31(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU31(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU31(vl_expected[i]));
+    }
+    log(dec_PDU31(vl_expected[i]));
+  }
+  @try{
+    vl_result := enc_PDU31(-1);
+    setverdict(fail, "This line should not be reached");
+    log("nok");
+  } @catch(e) {
+    setverdict(pass,"Expected DTE");
+    log("ok");
+  }
+
+
+  setverdict(pass);
+}
+
+testcase tc_raw_int_FIELDLENGTH8_comp_2scomp_seq() runs on CT {
+  var RoPDU32 vl_pdu1s := {0,1,15,16,127,-127,-126,-125};          //255,-1,-2, 127,128}; //-1=>'1000 0001'B
+  var octetstring vl_result;
+  var RoOS vl_expected := {'00'O, '01'O,'0F'O,'10'O,'7F'O,'81'O,'82'O,'83'O} //'81'O,'82'O, '7F'O,'80'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU32(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU32(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU32(vl_expected[i]));
+    }
+    log(dec_PDU32(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+testcase tc_raw_int_FIELDLENGTH8_comp_signbit_seq() runs on CT {
+  var RoPDU33 vl_pdu1s := {0,1,15,16,126,127,-126,-127,-1,-2};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'00'O, '01'O,'0F'O,'10'O,'7E'O,'7F'O,'FE'O,'FF'O,'81'O,'82'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU33(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU33(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU33(vl_expected[i]));
+    }
+    log(dec_PDU33(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+testcase tc_raw_int_FIELDLENGTH16_comp_nosign_seq() runs on CT {
+  var RoPDU34 vl_pdu1s := {1,15,16,255,65534,65535};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'0100'O,'0F00'O,'1000'O,'FF00'O,'FEFF'O,'FFFF'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU34(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) {
+      setverdict(fail,"Expected encoded:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU34(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected decoded:", vl_pdu1s[i]," got:", dec_PDU34(vl_expected[i]));
+    }
+    log(dec_PDU34(vl_expected[i]));
+  }
+  @try{
+    vl_result := enc_PDU34(-1);
+    setverdict(fail, "This line should not be reached");
+    log("nok");
+  } @catch(e) {
+    setverdict(pass,"Expected DTE");
+    log("ok");
+  }
+
+
+  setverdict(pass);
+}
+
+testcase tc_raw_int_FIELDLENGTH16_comp_2scomp_seq() runs on CT {
+  var RoPDU35 vl_pdu1s := {0,1,15,16,127,128,-127,-126,-125, 32767,-32767,-1,-2};          //255,-1,-2, 127,128};
+  var octetstring vl_result;
+  //reverse byte order:
+  var RoOS vl_expected := {'0000'O, '0100'O,'0F00'O,'1000'O,'7F00'O,'8000'O,'81FF'O,'82FF'O,'83FF'O,'FF7F'O,'0180'O,'FFFF'O,'FEFF'O}
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU35(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU35(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU35(vl_expected[i]));
+    }
+    log(dec_PDU35(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+
+testcase tc_raw_int_FIELDLENGTH16_comp_signbit_seq() runs on CT {
+  var RoPDU36 vl_pdu1s := {0,1,15,16,126,127,-126,-127,-1,-2};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'0000'O, '0100'O,'0F00'O,'1000'O,'7E00'O,'7F00'O,'7E80'O,'7F80'O,'0180'O,'0280'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU36(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU36(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU36(vl_expected[i]));
+    }
+    log(dec_PDU36(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+testcase tc_raw_int_8bit_seq() runs on CT {
+  var RoPDU41 vl_pdu1s :=  {0,1,15,16,126,127,-126,-127,-1,-2};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'00'O, '01'O,'0F'O,'10'O,'7E'O,'7F'O,'FE'O,'FF'O,'81'O,'82'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU41(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU41(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU41(vl_expected[i]));
+    }
+    log(dec_PDU41(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+testcase tc_raw_int_unsigned_8bit_seq() runs on CT {
+  var RoPDU42 vl_pdu1s := {1,15,16,255};
+  var octetstring vl_result;
+  var RoOS vl_expected := {'01'O,'0F'O,'10'O,'FF'O};
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU42(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU42(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU42(vl_expected[i]));
+    }
+    log(dec_PDU42(vl_expected[i]));
+  }
+  @try{
+    vl_result := enc_PDU42(-1);
+    setverdict(fail, "This line should not be reached");
+    log("nok");
+  } @catch(e) {
+    setverdict(pass,"Expected DTE");
+    log("ok");
+  }
+  setverdict(pass);
+}
+
+//16bit:  byteorder last, signbit,
+testcase tc_raw_int_16bit_seq() runs on CT {
+  var RoPDU43 vl_pdu1s :=  {
+    0,1,15,16,126,127,
+    255, 256,257,16384,32767, //32768, 32769, <=wrong encoding!
+    -126,-127,-1,-2,
+    -255,-256,-257,-16384,-32767
+  };
+  var octetstring vl_result;
+  var RoOS vl_expected := {
+    '0000'O, '0001'O,'000F'O,'0010'O,'007E'O,'007F'O,
+    '00FF'O, '0100'O,'0101'O,'4000'O,'7fff'O, //'8000'O,'8001'O,
+    '807E'O,'807F'O,'8001'O,'8002'O,
+    '80FF'O,'8100'O,'8101'O,'C000'O,'ffff'O
+  };
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU43(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+      log("Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU43(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU43(vl_expected[i]));
+    }
+    log(dec_PDU43(vl_expected[i]));
+  }
+  setverdict(pass);
+}
+
+testcase tc_raw_int_16bit_wrong1() runs on CT {
+  var PDU43 vl_pdu1 := 32768; //too big '1000 0000'B
+  @try {
+    var octetstring vl_result := enc_PDU43(vl_pdu1);
+    log(vl_result);
+    setverdict(fail,"This line should not be reached, expected:DTE"); //fails in cpp
+    log("This line should not be reached, expected:DTE");
+  } @catch(e){
+    setverdict(pass, "Caught the expected DTE (While RAW-encoding type '@RAW_integer_test.PDU43') got:", e);
+  }
+  setverdict(pass);
+}
+testcase tc_raw_int_16bit_wrong2() runs on CT {
+  var PDU43 vl_pdu1 := 32768*2; //too big
+  @try {
+    var octetstring vl_result := enc_PDU43(vl_pdu1);
+    log(vl_result);
+    setverdict(fail,"This line should not be reached, expected:DTE");
+    log("This line should not be reached, expected:DTE");
+  } @catch(e){
+    setverdict(pass, "Caught the expected DTE (While RAW-encoding type '@RAW_integer_test.PDU43') got:", e);
+  }
+  setverdict(pass);
+}
+
+testcase tc_raw_int_16bit_wrong3() runs on CT {
+  var PDU43 vl_pdu1 := -32768; //too big
+  @try {
+    var octetstring vl_result := enc_PDU43(vl_pdu1);
+    log(vl_result);
+    setverdict(fail,"This line should not be reached, expected:DTE");
+    log("This line should not be reached, expected:DTE");
+  } @catch(e){
+    setverdict(pass, "Caught the expected DTE (While RAW-encoding type '@RAW_integer_test.PDU43') got:", e);
+  }
+  setverdict(pass);
+}
+testcase tc_raw_int_unsigned_16bit_seq() runs on CT {
+  var RoPDU44 vl_pdu1s := {
+    0,1,15,16,126,127,
+    255, 256,257,16384,32767,32768,
+    32894, 32895, 32769, 32770,
+    33023, 33024, 33025, 49152, 65535
+  };
+  var octetstring vl_result;
+  var RoOS vl_expected := {
+    '0000'O, '0001'O,'000F'O,'0010'O,'007E'O,'007F'O,
+    '00FF'O, '0100'O,'0101'O,'4000'O,'7fff'O,'8000'O,
+    '807E'O,'807F'O,'8001'O,'8002'O,
+    '80FF'O,'8100'O,'8101'O,'C000'O,'ffff'O
+  };
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU44(vl_pdu1s[i]);
+    log( i,":",vl_result);
+    if(vl_result != vl_expected[i]) { 
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU44(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU44(vl_expected[i]));
+    }
+    log(dec_PDU44(vl_expected[i]));
+  }
+  @try{
+    vl_result := enc_PDU44(-1);
+    setverdict(fail, "This line should not be reached");
+    log("nok");
+  } @catch(e) {
+    setverdict(pass,"Expected DTE");
+    log("ok");
+  }
+  setverdict(pass);
+}
+
+testcase tc_raw_int_unsigned_16bit_wrong1() runs on CT {
+  var PDU44 vl_pdu1 := -1; //neg
+  @try {
+    var octetstring vl_result := enc_PDU44(vl_pdu1);
+    setverdict(fail,"This line should not be reached, expected:DTE");
+  } @catch(e){
+    setverdict(pass, "Caught the expected DTE (While RAW-encoding type '@RAW_integer_test.PDU44') got:", e);
+  }
+  setverdict(pass);
+}
+
+testcase tc_raw_IntX_seq() runs on CT {
+  var RoPDU51 vl_pdu1s := {
+    0,1,15,16,127,128,
+    255, 256,257,16384,32767,32768,
+    32894, 32895, 32769, 32770,
+    33023, 33024, 33025, 49152, 65535,
+    2097151,16777216,268435455
+  };
+  var octetstring vl_result;
+  var RoOS vl_expected := {
+    '00'O, '01'O,'0F'O,'10'O,'7F'O,'8080'O,
+    '80FF'O, '8100'O,'8101'O,'C04000'O,'C07fff'O,'C08000'O,
+    'C0807E'O,'C0807F'O,'C08001'O,'C08002'O,
+    'C080FF'O,'C08100'O,'C08101'O,'C0C000'O,'C0ffff'O,
+    'DF FFFF'O, 'E100 0000'O, 'EFFF FFFF'O
+  };
+
+  var integer N :=sizeof(vl_pdu1s);
+  for( var integer i:=0; i<N; i:=i+1) {
+    vl_result := enc_PDU51(vl_pdu1s[i]);
+    log( i,":",vl_pdu1s[i],"->",vl_result);
+    if(vl_result != vl_expected[i]) {
+      setverdict(fail,"Expected:", vl_expected[i]," got:", vl_result);
+      log("Expected:", vl_expected[i]," got:", vl_result);
+    }
+    if( dec_PDU51(vl_expected[i]) != vl_pdu1s[i]){
+      setverdict(fail,"Expected:", vl_pdu1s[i]," got:", dec_PDU51(vl_expected[i]));
+      log("Decoding failed. Expected:", vl_pdu1s[i]," got:", dec_PDU51(vl_expected[i]))
+    }
+    log(dec_PDU51(vl_expected[i]));
+  }
+  @try{
+    vl_result := enc_PDU51(-1);
+    setverdict(fail, "This line should not be reached");
+    log("This line should not be reached");
+  } @catch(e) {
+    setverdict(pass,"Expected DTE");
+    log("Expected DTE");
+  }
+  setverdict(pass);
+}
+
+//The input should contain 16 bits
+testcase tc_decode_error() runs on CT {
+  var octetstring vl_o :='00'O;
+  @try {
+    var PDU36 vl_decoded :=dec_PDU36(vl_o);
+    setverdict(fail,"This line should not be reached, DTE expected")
+  } @catch(e) {
+    setverdict(pass,"Caught the expected DTE:",e)
+  }
+
+}
+
+control {
+  execute( tc_raw_int_default1());
+  execute( tc_raw_int_default2());
+  execute(tc_raw_int_default3());
+  execute(tc_raw_int_default1_seq());
+  execute(tc_raw_int_FIELDLENGTH8_seq());
+  execute(tc_raw_int_FIELDLENGTH16_seq_wrong());
+  execute(tc_raw_int_FIELDLENGTH16_seq());
+  execute(tc_raw_int_FIELDLENGTH24_seq());
+  execute(tc_raw_int_FIELDLENGTH32_seq());
+  execute(tc_raw_int_FIELDLENGTH64_seq());
+  execute(tc_raw_int_FIELDLENGTH128_seq());
+  execute(tc_raw_int_FIELDLENGTH8_lsb_seq());
+  execute(tc_raw_int_FIELDLENGTH16_lsb_seq());
+  execute(tc_raw_int_FIELDLENGTH16_lsb_last_seq());
+  execute(tc_raw_int_FIELDLENGTH16_lsb_first_seq());
+  execute(tc_raw_int_FIELDLENGTH8_msb_seq());
+  execute(tc_raw_int_FIELDLENGTH16_msb_seq());
+  execute(tc_raw_int_FIELDLENGTH8_bitorder_seq());
+  execute(tc_raw_int_FIELDLENGTH16_byteorder_seq())
+  execute(tc_raw_int_FIELDLENGTH8_comp_nosign_seq());
+  execute(tc_raw_int_FIELDLENGTH8_comp_2scomp_seq());
+  execute(tc_raw_int_FIELDLENGTH8_comp_signbit_seq());
+  execute(tc_raw_int_FIELDLENGTH16_comp_nosign_seq());
+  execute(tc_raw_int_FIELDLENGTH16_comp_2scomp_seq());
+  execute(tc_raw_int_FIELDLENGTH16_comp_signbit_seq());
+  execute(tc_raw_int_8bit_seq());
+  execute(tc_raw_int_unsigned_8bit_seq())
+  execute(tc_raw_int_16bit_seq());
+  execute(tc_raw_int_16bit_wrong1()); //failed in cpp
+  execute(tc_raw_int_16bit_wrong2()); //passed in cpp
+  execute(tc_raw_int_16bit_wrong3()); //failed in cpp
+  execute(tc_raw_int_unsigned_16bit_seq());
+  execute(tc_raw_int_unsigned_16bit_wrong1());
+  execute(tc_raw_IntX_seq()); //fixed in java
+  execute(tc_decode_error());
+}
+
+} with { encode "RAW" }