github.com/bluenviron/mediacommon@v1.9.3/pkg/codecs/jpeg/start_of_scan_test.go (about)

     1  package jpeg
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  )
     8  
     9  var casesStartOfScan = []struct {
    10  	name string
    11  	enc  []byte
    12  	dec  StartOfScan
    13  }{
    14  	{
    15  		"base",
    16  		[]byte{
    17  			0xff, 0xda, 0x0, 0xc, 0x3, 0x0, 0x0, 0x1,
    18  			0x11, 0x2, 0x11, 0x0, 0x3f, 0x0,
    19  		},
    20  		StartOfScan{},
    21  	},
    22  }
    23  
    24  func TestStartOfScanUnmarshal(t *testing.T) {
    25  	for _, ca := range casesStartOfScan {
    26  		t.Run(ca.name, func(t *testing.T) {
    27  			var h StartOfScan
    28  			err := h.Unmarshal(ca.enc[4:])
    29  			require.NoError(t, err)
    30  			require.Equal(t, ca.dec, h)
    31  		})
    32  	}
    33  }
    34  
    35  func TestStartOfScanMarshal(t *testing.T) {
    36  	for _, ca := range casesStartOfScan {
    37  		t.Run(ca.name, func(t *testing.T) {
    38  			byts := ca.dec.Marshal(nil)
    39  			require.Equal(t, ca.enc, byts)
    40  		})
    41  	}
    42  }
    43  
    44  func FuzzStartOfScanUnmarshal(f *testing.F) {
    45  	f.Fuzz(func(_ *testing.T, b []byte) {
    46  		var h StartOfScan
    47  		h.Unmarshal(b) //nolint:errcheck
    48  	})
    49  }