github.com/aretext/aretext@v1.3.0/input/engine/serialize_test.go (about)

     1  package engine
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestSerialize(t *testing.T) {
    11  	sm := &StateMachine{
    12  		numStates:  3,
    13  		startState: 1,
    14  		acceptCmd: map[stateId]CmdId{
    15  			0: 2,
    16  			1: 3,
    17  			2: 4,
    18  		},
    19  		transitions: map[stateId][]transition{
    20  			0: {
    21  				{
    22  					eventRange: eventRange{
    23  						start: 10,
    24  						end:   17,
    25  					},
    26  					nextState: 2,
    27  					captures: map[CmdId]CaptureId{
    28  						1: 19,
    29  						2: 27,
    30  					},
    31  				},
    32  				{
    33  					eventRange: eventRange{
    34  						start: 99,
    35  						end:   104,
    36  					},
    37  					nextState: 0,
    38  				},
    39  			},
    40  
    41  			1: {
    42  				{
    43  					eventRange: eventRange{
    44  						start: 77,
    45  						end:   79,
    46  					},
    47  					nextState: 0,
    48  				},
    49  			},
    50  		},
    51  	}
    52  
    53  	data := Serialize(sm)
    54  	deserialized, err := Deserialize(data)
    55  	require.NoError(t, err)
    56  	assert.Equal(t, sm, deserialized)
    57  }