NewDisplayMatrixFromBytes should return a pointer

This commit is contained in:
Quentin Renard
2022-03-25 09:24:57 +01:00
parent 17cf9ab758
commit abf92ffc35
2 changed files with 5 additions and 2 deletions

View File

@@ -11,13 +11,16 @@ import (
type DisplayMatrix [9]uint32 type DisplayMatrix [9]uint32
func NewDisplayMatrixFromBytes(b []byte) (m DisplayMatrix, err error) { func NewDisplayMatrixFromBytes(b []byte) (m *DisplayMatrix, err error) {
// Check length // Check length
if len(b) < 36 { if len(b) < 36 {
err = fmt.Errorf("astiav: invalid length %d < 36", len(b)) err = fmt.Errorf("astiav: invalid length %d < 36", len(b))
return return
} }
// Create display matrix
m = &DisplayMatrix{}
// Loop // Loop
for idx := 0; idx < 9; idx++ { for idx := 0; idx < 9; idx++ {
m[idx] = binary.BigEndian.Uint32(b[idx*4 : (idx+1)*4]) m[idx] = binary.BigEndian.Uint32(b[idx*4 : (idx+1)*4])

View File

@@ -11,6 +11,6 @@ func TestDisplayMatrix(t *testing.T) {
require.Error(t, err) require.Error(t, err)
dm, err := NewDisplayMatrixFromBytes([]byte{0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64}) dm, err := NewDisplayMatrixFromBytes([]byte{0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64})
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, DisplayMatrix{0x0, 0xffff, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x40}, dm) require.Equal(t, DisplayMatrix{0x0, 0xffff, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x40}, *dm)
require.Equal(t, float64(-90), dm.Rotation()) require.Equal(t, float64(-90), dm.Rotation())
} }