You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: table_test.go
    path of file: ./repos/wazero/internal/wasm/binary
    
    the code of the file until where you have to start completion: package binary

import (
	"bytes"
	"fmt"
	"testing"

	"github.com/tetratelabs/wazero/api"
	"github.com/tetratelabs/wazero/experimental"
	"github.com/tetratelabs/wazero/internal/testing/binaryencoding"
	"github.com/tetratelabs/wazero/internal/testing/require"
	"github.com/tetratelabs/wazero/internal/wasm"
)

func TestTableType(t *testing.T) {
	zero := uint32(0)
	max := wasm.MaximumFunctionIndex

	tests := []struct {
		name     string
		input    wasm.Table
		expected []byte
	}{
		{
			name:     "min 0 - funcref",
			input:    wasm.Table{Type: wasm.RefTypeFuncref},
			expected: []byte{wasm.RefTypeFuncref, 0x0, 0},
		},
		{
			name:     "min 0 - externref",
			input:    wasm.Table{Type: wasm.RefTypeExternref},
			expected: []byte{wasm.RefTypeExternref, 0x0, 0},
		},
		{
			name:     "min 0, max 0"
    
func TestDecodeTableType_Errors(t *testing.T) {
	tests := []struct {
		name        string
		input       []byte
		expectedErr string
		features    api.CoreFeatures
	}{
		{
			name:        "not func ref",
			input:       []byte{0x50, 0x1, 0x80, 0x80, 0x4, 0},
			expectedErr: "table type funcref is invalid: feature \"reference-types\" is disabled",
		},
		{
			name:        "max < min",
			input:       []byte{wasm.RefTypeFuncref, 0x1, 0x80, 0x80, 0x4, 0},
			expectedErr: "table size minimum must not be greater than maximum",
			features:    api.CoreFeatureReferenceTypes,
		},
		{
			name:        "min > limit",
			input:       []byte{wasm.RefTypeFuncref, 0x0, 0xff, 0xff, 0xff, 0xff, 0xf},
			expectedErr: "table min must be at most 134217728",
			features:    api.CoreFeatureReferenceTypes,
		},
		{
			name:        "shared",
			input:       []byte{wasm.RefTypeFuncref, 0x2, 0},
			expectedErr: "tables cannot be marked as shared",
			// Shared tables are an error even if threads are enabled.
			features: experimental.CoreFeaturesThreads,
		},
	}

	for _, tt := range tests {
		tc := tt
		t.Run(tc.name, func(t *testing.T) {
			var decoded wasm.Table
			err := decodeTable(bytes.NewReader(tc.input), tc.features, &decoded)
			require.EqualError(t, err, tc.expectedErr)
		})
	}
}