plmn id handling improved
[ric-plt/submgr.git] / e2ap / pkg / conv / bcd_test.go
index 4560dc7..fa2c61b 100644 (file)
 package conv
 
 import (
+       "encoding/hex"
+       "fmt"
        "os"
        "testing"
 )
 
-// Test cases
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
 func TestMain(m *testing.M) {
        code := m.Run()
        os.Exit(code)
 }
 
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+
 func TestBcdEven(t *testing.T) {
 
        bcd := NewBcd("0123456789??????")
@@ -38,6 +46,22 @@ func TestBcdEven(t *testing.T) {
                t.Errorf("TestBcdEven: bcd Encode failed")
        }
 
+       if bcdbuf[0] != 0x12 {
+               t.Errorf("TestBcdEven: bcdbuf[0] expected 0x12 got 0x%x", bcdbuf[0])
+       }
+
+       if bcdbuf[1] != 0x34 {
+               t.Errorf("TestBcdEven: bcdbuf[1] expected 0x34 got 0x%x", bcdbuf[1])
+       }
+
+       if bcdbuf[2] != 0x56 {
+               t.Errorf("TestBcdEven: bcdbuf[2] expected 0x56 got 0x%x", bcdbuf[2])
+       }
+
+       hexdata := make([]byte, hex.EncodedLen(len(bcdbuf)))
+       hex.Encode(hexdata, bcdbuf)
+       fmt.Printf("TestBcdEven: 123456 encoded data [%s]\n", string(hexdata))
+
        bcdstr := bcd.Decode(bcdbuf)
        if bcdstr != string("123456") {
                t.Errorf("TestBcdEven: bcd Decode failed: got %s expect %s", bcdstr, string("123456"))
@@ -53,6 +77,22 @@ func TestBcdUnEven1(t *testing.T) {
                t.Errorf("TestBcdUnEven1: bcd Encode failed")
        }
 
+       if bcdbuf[0] != 0x12 {
+               t.Errorf("TestBcdEven: bcdbuf[0] expected 0x12 got 0x%x", bcdbuf[0])
+       }
+
+       if bcdbuf[1] != 0x34 {
+               t.Errorf("TestBcdEven: bcdbuf[1] expected 0x34 got 0x%x", bcdbuf[1])
+       }
+
+       if bcdbuf[2] != 0x5f {
+               t.Errorf("TestBcdEven: bcdbuf[2] expected 0x5f got 0x%x", bcdbuf[2])
+       }
+
+       hexdata := make([]byte, hex.EncodedLen(len(bcdbuf)))
+       hex.Encode(hexdata, bcdbuf)
+       fmt.Printf("TestBcdUnEven1: 12345 encoded data [%s]\n", string(hexdata))
+
        bcdstr := bcd.Decode(bcdbuf)
        if bcdstr != string("12345?") {
                t.Errorf("TestBcdUnEven1: bcd Decode failed: got %s expect %s", bcdstr, string("12345?"))
@@ -67,8 +107,118 @@ func TestBcdUnEven2(t *testing.T) {
                t.Errorf("TestBcdUnEven2: bcd Encode failed")
        }
 
+       if bcdbuf[0] != 0x12 {
+               t.Errorf("TestBcdEven: bcdbuf[0] expected 0x12 got 0x%x", bcdbuf[0])
+       }
+
+       if bcdbuf[1] != 0x34 {
+               t.Errorf("TestBcdEven: bcdbuf[1] expected 0x34 got 0x%x", bcdbuf[1])
+       }
+
+       if bcdbuf[2] != 0x5f {
+               t.Errorf("TestBcdEven: bcdbuf[2] expected 0x5f got 0x%x", bcdbuf[2])
+       }
+
+       hexdata := make([]byte, hex.EncodedLen(len(bcdbuf)))
+       hex.Encode(hexdata, bcdbuf)
+       fmt.Printf("TestBcdUnEven2: 12345f encoded data [%s]\n", string(hexdata))
+
        bcdstr := bcd.Decode(bcdbuf)
        if bcdstr != string("12345f") {
                t.Errorf("TestBcdUnEven2: bcd Decode failed: got %s expect %s", bcdstr, string("12345f"))
        }
 }
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+func TestTbcdEven(t *testing.T) {
+
+       bcd := NewTbcd("0123456789??????")
+       bcdbuf := bcd.Encode("123456")
+       if len(bcdbuf) == 0 {
+               t.Errorf("TestTbcdEven: bcd Encode failed")
+       }
+
+       if bcdbuf[0] != 0x21 {
+               t.Errorf("TestBcdEven: bcdbuf[0] expected 0x21 got 0x%x", bcdbuf[0])
+       }
+
+       if bcdbuf[1] != 0x43 {
+               t.Errorf("TestBcdEven: bcdbuf[1] expected 0x34 got 0x%x", bcdbuf[1])
+       }
+
+       if bcdbuf[2] != 0x65 {
+               t.Errorf("TestBcdEven: bcdbuf[2] expected 0x65 got 0x%x", bcdbuf[2])
+       }
+
+       hexdata := make([]byte, hex.EncodedLen(len(bcdbuf)))
+       hex.Encode(hexdata, bcdbuf)
+       fmt.Printf("TestTbcdEven: 123456 encoded data [%s]\n", string(hexdata))
+
+       bcdstr := bcd.Decode(bcdbuf)
+       if bcdstr != string("123456") {
+               t.Errorf("TestTbcdEven: bcd Decode failed: got %s expect %s", bcdstr, string("123456"))
+       }
+
+}
+
+func TestTbcdUnEven1(t *testing.T) {
+
+       bcd := NewTbcd("0123456789??????")
+       bcdbuf := bcd.Encode("12345")
+       if len(bcdbuf) == 0 {
+               t.Errorf("TestTbcdUnEven1: bcd Encode failed")
+       }
+
+       if bcdbuf[0] != 0x21 {
+               t.Errorf("TestBcdEven: bcdbuf[0] expected 0x21 got 0x%x", bcdbuf[0])
+       }
+
+       if bcdbuf[1] != 0x43 {
+               t.Errorf("TestBcdEven: bcdbuf[1] expected 0x43 got 0x%x", bcdbuf[1])
+       }
+
+       if bcdbuf[2] != 0xf5 {
+               t.Errorf("TestBcdEven: bcdbuf[2] expected 0xf5 got 0x%x", bcdbuf[2])
+       }
+
+       hexdata := make([]byte, hex.EncodedLen(len(bcdbuf)))
+       hex.Encode(hexdata, bcdbuf)
+       fmt.Printf("TestTbcdUnEven1: 12345 encoded data [%s]\n", string(hexdata))
+
+       bcdstr := bcd.Decode(bcdbuf)
+       if bcdstr != string("12345?") {
+               t.Errorf("TestTbcdUnEven1: bcd Decode failed: got %s expect %s", bcdstr, string("12345?"))
+       }
+}
+
+func TestTbcdUnEven2(t *testing.T) {
+
+       bcd := NewTbcd("0123456789?????f")
+       bcdbuf := bcd.Encode("12345f")
+       if len(bcdbuf) == 0 {
+               t.Errorf("TestTbcdUnEven2: bcd Encode failed")
+       }
+
+       if bcdbuf[0] != 0x21 {
+               t.Errorf("TestBcdEven: bcdbuf[0] expected 0x21 got 0x%x", bcdbuf[0])
+       }
+
+       if bcdbuf[1] != 0x43 {
+               t.Errorf("TestBcdEven: bcdbuf[1] expected 0x43 got 0x%x", bcdbuf[1])
+       }
+
+       if bcdbuf[2] != 0xf5 {
+               t.Errorf("TestBcdEven: bcdbuf[2] expected 0xf5 got 0x%x", bcdbuf[2])
+       }
+
+       hexdata := make([]byte, hex.EncodedLen(len(bcdbuf)))
+       hex.Encode(hexdata, bcdbuf)
+       fmt.Printf("TestTbcdUnEven2: 12345f encoded data [%s]\n", string(hexdata))
+
+       bcdstr := bcd.Decode(bcdbuf)
+       if bcdstr != string("12345f") {
+               t.Errorf("TestTbcdUnEven2: bcd Decode failed: got %s expect %s", bcdstr, string("12345f"))
+       }
+}