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: Message1_test.go
    path of file: ./repos/simple-binary-encoding/gocode/src/basic/SBE tests
    
    the code of the file until where you have to start completion: package sbe_tests

import (
	"bytes"
	"testing"
)

func TestEncodeDecodeMessage1(t *testing.T) {

	m := NewSbeGoMarshaller()
	var in Message1
	copy(in.EDTField[:], "abcdefghijklmnopqrst")
	in.Header = MessageHeader{in.SbeBlockLength(), in.SbeTemplateId(), in.SbeSchemaId(), in.SbeSchemaVersion()}
	in.ENUMField = ENUM.Value10

	var buf = new(bytes.Buffer)
	if err := in.Encode(m, buf, true); err != nil {
		t.Log("Encoding Error", err)
		t.Fail()
	}

	var out Message1 = *new(Message1)
	if err := out.Decode(m, buf, in.SbeSchemaVersion(), in.SbeBlockLength(), true); err != nil {
		t.Log("Decoding Error", err)
		t.Fail()
	}

	if in != out {
		t.Log("in != out:\n", in, out)
		t.Fail()
	}

	// Check that if we pass in an unk
    
func TestEncodeDecodeMessage1(t *testing.T) {

	m := NewSbeGoMarshaller()
	var in Message1
	copy(in.EDTField[:], "abcdefghijklmnopqrst")
	in.Header = MessageHeader{in.SbeBlockLength(), in.SbeTemplateId(), in.SbeSchemaId(), in.SbeSchemaVersion()}
	in.ENUMField = ENUM.Value10

	var buf = new(bytes.Buffer)
	if err := in.Encode(m, buf, true); err != nil {
		t.Log("Encoding Error", err)
		t.Fail()
	}

	var out Message1 = *new(Message1)
	if err := out.Decode(m, buf, in.SbeSchemaVersion(), in.SbeBlockLength(), true); err != nil {
		t.Log("Decoding Error", err)
		t.Fail()
	}

	if in != out {
		t.Log("in != out:\n", in, out)
		t.Fail()
	}

	// Check that if we pass in an unknown enum value we get an error
	in.ENUMField = 77
	if err := in.Encode(m, buf, true); err == nil {
		t.Log("Encoding didn't fail on unknown value with rangecheck")
		t.Fail()
	} else {
		t.Log("Error looks good:", err)
	}

	// Encode should work if we don't rangecheck
	buf = new(bytes.Buffer)
	if err := in.Encode(m, buf, false); err != nil {
		t.Log("Encoding failed on unknown value without rangecheck")
		t.Fail()
	}

	// Decode should fail on the bogus value if we rangecheck
	// FIXME: I reckon this should work
	if err := out.Decode(m, buf, in.SbeSchemaVersion(), in.SbeBlockLength(), true); err == nil {
		t.Log("Decoding didn't fail on unknown value with rangecheck")
		t.Fail()
	} else {
		t.Log("Error looks good:", err)
	}

	// Now check with proper values
	in.ENUMField = ENUM.Value10
	in.Encode(m, buf, true)
	if err := out.Decode(m, buf, in.SbeSchemaVersion(), in.SbeBlockLength(), true); err != nil {
		t.Log("Decoding Error:", err)
		t.Fail()
	}
	if out.ENUMField != in.ENUMField {
		t.Log("out.ENUMField != in.ENUMField", out.ENUMField, in.ENUMField)
		t.Fail()
	}

	return
}