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

     1  package jpeg
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  )
     8  
     9  var casesStartOfFrame1 = []struct {
    10  	name string
    11  	enc  []byte
    12  	dec  StartOfFrame1
    13  }{
    14  	{
    15  		"base",
    16  		[]byte{
    17  			0xff, 0xc0, 0x0, 0x11, 0x8, 0x2, 0x58, 0x3,
    18  			0x20, 0x3, 0x0, 0x22, 0x0, 0x1, 0x11, 0x1,
    19  			0x2, 0x11, 0x1,
    20  		},
    21  		StartOfFrame1{
    22  			Type:                   1,
    23  			Width:                  800,
    24  			Height:                 600,
    25  			QuantizationTableCount: 2,
    26  		},
    27  	},
    28  }
    29  
    30  func TestStartOfFrame1Unmarshal(t *testing.T) {
    31  	for _, ca := range casesStartOfFrame1 {
    32  		t.Run(ca.name, func(t *testing.T) {
    33  			var h StartOfFrame1
    34  			err := h.Unmarshal(ca.enc[4:])
    35  			require.NoError(t, err)
    36  			h.QuantizationTableCount = 2
    37  			require.Equal(t, ca.dec, h)
    38  		})
    39  	}
    40  }
    41  
    42  func TestStartOfFrame1Marshal(t *testing.T) {
    43  	for _, ca := range casesStartOfFrame1 {
    44  		t.Run(ca.name, func(t *testing.T) {
    45  			byts := ca.dec.Marshal(nil)
    46  			require.Equal(t, ca.enc, byts)
    47  		})
    48  	}
    49  }
    50  
    51  func FuzzStartOfFrame1Unmarshal(f *testing.F) {
    52  	f.Fuzz(func(_ *testing.T, b []byte) {
    53  		var h StartOfFrame1
    54  		h.Unmarshal(b) //nolint:errcheck
    55  	})
    56  }