/****************************************************************************** * Copyright (c) 2000-2014 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 ******************************************************************************/ module bit_to_OK { type component PDTestComponent {}; /*--- BIT2HEX --------------------------------------------------*/ modulepar hexstring b2hpar := bit2hex(''B) modulepar hexstring b2hpar1 := bit2hex('000000000000'B & ''B & '111111111111'B) modulepar hexstring b2hpar2 := bit2hex(substr('000000000000111111111111'B,0,12) & ''B & substr('000000000000111111111111'B,12,12)) modulepar hexstring b2hpar3 := bit2hex(('000000000000'B <@ 13) & ''B & ('111111111111'B @> 13)) modulepar hexstring b2hpar4 := bit2hex((not4b '111111111111'B) & '111111111111'B) modulepar hexstring b2hpar5 := bit2hex('000000000000111111111111'B and4b '000000000000111111111111'B) modulepar hexstring b2hpar6 := bit2hex('000000000000000000000000'B or4b '000000000000111111111111'B) modulepar hexstring b2hpar7 := bit2hex('000000000000000000000000'B xor4b '000000000000111111111111'B) modulepar hexstring b2hpar8 := bit2hex('10011'B) modulepar hexstring b2hpar9 := bit2hex('11'B) modulepar hexstring b2hparh := '000FFF'H testcase bit_to_hex() runs on PDTestComponent{ if ((b2hpar == bit2hex(''B)) and (b2hpar == ''H)) {setverdict(pass);} else {setverdict(fail);} if ((b2hpar1 == bit2hex('000000000000'B & ''B & '111111111111'B)) and (b2hpar1 == b2hparh)) {setverdict(pass);} else {setverdict(fail);} if ((b2hpar2 == bit2hex(substr('000000000000111111111111'B,0,12) & ''B & substr('000000000000111111111111'B,12,12))) and (b2hpar2 == b2hparh)) {setverdict(pass);} else {setverdict(fail);} if ((b2hpar3 == bit2hex(('000000000000'B <@ 13) & ''B & ('111111111111'B @> 13))) and (b2hpar3 == b2hparh)) {setverdict(pass);} else {setverdict(fail);} if ((b2hpar4 == bit2hex((not4b '111111111111'B) & '111111111111'B)) and (b2hpar4 == b2hparh)) {setverdict(pass);} else {setverdict(fail);} if ((b2hpar5 == bit2hex('000000000000111111111111'B and4b '000000000000111111111111'B)) and (b2hpar5 == b2hparh)) {setverdict(pass);} else {setverdict(fail);} if ((b2hpar6 == bit2hex('000000000000000000000000'B or4b '000000000000111111111111'B)) and (b2hpar6 == b2hparh)) {setverdict(pass);} else {setverdict(fail);} if ((b2hpar7 == bit2hex('000000000000000000000000'B xor4b '000000000000111111111111'B)) and (b2hpar7 == b2hparh)) {setverdict(pass);} else {setverdict(fail);} if ((b2hpar8 == bit2hex('10011'B)) and (b2hpar8 == '13'H)) {setverdict(pass);} else {setverdict(fail);} if ((b2hpar9 == bit2hex('11'B)) and (b2hpar9 == '3'H)) {setverdict(pass);} else {setverdict(fail);} } /*--- BIT2INT --------------------------------------------------*/ modulepar integer b2ipar := bit2int(''B) modulepar integer b2ipar1 := bit2int('111111'B & '111111'B) modulepar integer b2ipar2 := bit2int((not4b '111111'B) & '111111'B) modulepar integer b2ipar3 := bit2int(('111111'B and4b '000000'B) & '111111'B) modulepar integer b2ipar4 := bit2int(('000000'B or4b '000000'B) & '111111'B) modulepar integer b2ipar5 := bit2int(('000011'B xor4b '000011'B) & '111111'B) modulepar integer b2i1_16 := 12345678910111213141516; testcase bit_to_int() runs on PDTestComponent{ var integer i1 := 12345678910111213141516; var bitstring bs1 := '00000000000000000010100111010100001010110110010101101000100100110010100010111011111000001100'B; var integer b; if ((b2ipar == bit2int(''B)) and (b2ipar == 0)) {setverdict(pass);} else {setverdict(fail);} if ((b2ipar1 == bit2int('111111'B & '111111'B)) and (b2ipar1 == 4095)) {setverdict(pass);} else {setverdict(fail);} b := bit2int((not4b '111111'B) & '111111'B) if ((b2ipar2 == b) and (b2ipar2 == 63)) {setverdict(pass);} else {setverdict(fail);} b := bit2int(('111111'B and4b '000000'B) & '111111'B) if ((b2ipar3 == b) and (b2ipar3 == 63)) {setverdict(pass);} else {setverdict(fail);} b := bit2int(('000000'B or4b '000000'B) & '111111'B) if ((b2ipar4 == b) and (b2ipar4 == 63)) {setverdict(pass);} else {setverdict(fail);} b := bit2int(('000011'B xor4b '000011'B) & '111111'B) if ((b2ipar5 == b) and (b2ipar5 == 63)) {setverdict(pass);} else {setverdict(fail);} if (bit2int(bs1) == 12345678910111213141516) {setverdict(pass);} else {setverdict(fail);} if (bit2int('00000000000000000010100111010100001010110110010101101000100100110010100010111011111000001100'B) == b2i1_16) {setverdict(pass);} else {setverdict(fail);} if (bit2int(bs1) == 12345678910111213141516) {setverdict(pass);} else {setverdict(fail);} if (bit2int(int2bit(bit2int('010100111010100001010110110010101101000100100110010100010111011111000001100'B), 75)) == b2i1_16) {setverdict(pass);} else {setverdict(fail);} var integer j for (j:=0; j<1024; j:=j+1) { if (bit2int(int2bit(j,10)) == j) {setverdict(pass);} else {setverdict(fail);} } } /*--- BIT2OCT --------------------------------------------------*/ modulepar octetstring b2opar := bit2oct(''B) modulepar octetstring b2opar1 := bit2oct('000000000000'B & ''B & '111111111111'B) modulepar octetstring b2opar2 := bit2oct(substr('000000000000111111111111'B,0,12) & ''B & substr('000000000000111111111111'B,12,12)) modulepar octetstring b2opar3 := bit2oct(('000000000000'B <@ 13) & ''B & ('111111111111'B @> 13)) modulepar octetstring b2opar4 := bit2oct((not4b '111111111111'B) & '111111111111'B) modulepar octetstring b2opar5 := bit2oct('000000000000111111111111'B and4b '000000000000111111111111'B) modulepar octetstring b2opar6 := bit2oct('000000000000000000000000'B or4b '000000000000111111111111'B) modulepar octetstring b2opar7 := bit2oct('000000000000000000000000'B xor4b '000000000000111111111111'B) modulepar octetstring b2opar8 := bit2oct('10011'B) modulepar octetstring b2opar9 := bit2oct('11'B) modulepar octetstring b2oparo := '000FFF'O testcase bit_to_oct() runs on PDTestComponent{ if ((b2opar == bit2oct(''B)) and (b2opar == ''O)) {setverdict(pass);} else {setverdict(fail);} if ((b2opar1 == bit2oct('000000000000'B & ''B & '111111111111'B)) and (b2opar1 == b2oparo)) {setverdict(pass);} else {setverdict(fail);} if ((b2opar2 == bit2oct(substr('000000000000111111111111'B,0,12) & ''B & substr('000000000000111111111111'B,12,12))) and (b2opar2 == b2oparo)) {setverdict(pass);} else {setverdict(fail);} if ((b2opar3 == bit2oct(('000000000000'B <@ 13) & ''B & ('111111111111'B @> 13))) and (b2opar3 == b2oparo)) {setverdict(pass);} else {setverdict(fail);} if ((b2opar4 == bit2oct((not4b '111111111111'B) & '111111111111'B)) and (b2opar4 == b2oparo)) {setverdict(pass);} else {setverdict(fail);} if ((b2opar5 == bit2oct('000000000000111111111111'B and4b '000000000000111111111111'B)) and (b2opar5 == b2oparo)) {setverdict(pass);} else {setverdict(fail);} if ((b2opar6 == bit2oct('000000000000000000000000'B or4b '000000000000111111111111'B)) and (b2opar6 == b2oparo)) {setverdict(pass);} else {setverdict(fail);} if ((b2opar7 == bit2oct('000000000000000000000000'B xor4b '000000000000111111111111'B)) and (b2opar7 == b2oparo)) {setverdict(pass);} else {setverdict(fail);} if ((b2opar8 == bit2oct('10011'B)) and (b2opar8 == '13'O)) {setverdict(pass);} else {setverdict(fail);} if ((b2opar9 == bit2oct('11'B)) and (b2opar9 == '03'O)) {setverdict(pass);} else {setverdict(fail);} } /*--- BIT2STR --------------------------------------------------*/ modulepar charstring b2spar := bit2str(''B) modulepar charstring b2spar1 := bit2str('000000'B & ''B & '111111'B) modulepar charstring b2spar2 := bit2str(substr('000000111111'B,0,6) & ''B & substr('000000111111'B,6,6)) modulepar charstring b2spar3 := bit2str(('000000'B <@ 3) & ''B & ('111111'B @> 3)) modulepar charstring b2spar4 := bit2str((not4b '111111'B) & '111111'B) modulepar charstring b2spar5 := bit2str('000000111111'B and4b '000000111111'B) modulepar charstring b2spar6 := bit2str('000000000000'B or4b '000000111111'B) modulepar charstring b2spar7 := bit2str('000000000000'B xor4b '000000111111'B) modulepar charstring b2spars := "000000111111" testcase bit_to_str() runs on PDTestComponent{ if ((b2spar == bit2str(''B)) and (b2spar == "")) {setverdict(pass);} else {setverdict(fail);} if ((b2spar1 == bit2str('000000'B & ''B & '111111'B)) and (b2spar1 == b2spars)) {setverdict(pass);} else {setverdict(fail);} if ((b2spar2 == bit2str(substr('000000111111'B,0,6) & ''B & substr('000000111111'B,6,6))) and (b2spar2 == b2spars)) {setverdict(pass);} else {setverdict(fail);} if ((b2spar3 == bit2str(('000000'B <@ 3) & ''B & ('111111'B @> 3))) and (b2spar3 == b2spars)) {setverdict(pass);} else {setverdict(fail);} if ((b2spar4 == bit2str((not4b '111111'B) & '111111'B)) and (b2spar4 == b2spars)) {setverdict(pass);} else {setverdict(fail);} if ((b2spar5 == bit2str('000000111111'B and4b '000000111111'B)) and (b2spar5 == b2spars)) {setverdict(pass);} else {setverdict(fail);} if ((b2spar6 == bit2str('000000000000'B or4b '000000111111'B)) and (b2spar6 == b2spars)) {setverdict(pass);} else {setverdict(fail);} if ((b2spar7 == bit2str('000000000000'B xor4b '000000111111'B)) and (b2spar7 == b2spars)) {setverdict(pass);} else {setverdict(fail);} } control { execute (bit_to_hex()); execute (bit_to_int()); execute (bit_to_oct()); execute (bit_to_str()); } }