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: gpkg_test.go
    path of file: ./repos/tegola/provider/gpkg
    
    the code of the file until where you have to start completion: //go:build cgo
// +build cgo

package gpkg_test

import (
	"context"
	"errors"
	"fmt"
	"math"
	"os"
	"reflect"
	"testing"

	"github.com/go-spatial/geom"
	"github.com/go-spatial/tegola"
	"github.com/go-spatial/tegola/dict"
	"github.com/go-spatial/tegola/provider"
	"github.com/go-spatial/tegola/provider/gpkg"
)

const (
	GPKGAthensFilePath     
    
func confEqual(t *testing.T, conf, expectedConf map[string]interface{}) bool {
	equal := true

	confKeys := make([]string, 0, len(conf))
	for k := range conf {
		confKeys = append(confKeys, k)
	}

	exKeys := make([]string, 0, len(expectedConf))
	for k := range expectedConf {
		exKeys = append(exKeys, k)
	}

	if len(confKeys) != len(exKeys) {
		t.Errorf("Configs have different number of parameters: %v != %v", confKeys, exKeys)
		equal = false
	}

	for k, v := range conf {
		if k != "layers" {
			if v != expectedConf[k] {
				t.Errorf(`"%v": %v != %v`, k, v, expectedConf[k])
				equal = false
			}
		} else {
			lconf := v.([]map[string]interface{})
			econf := expectedConf["layers"].([]map[string]interface{})

			// safeLength is the smaller of these two lengths
			safeLength := len(lconf)
			if len(lconf) != len(econf) {
				t.Errorf("Layer configs have different lengths: %v != %v", len(lconf), len(econf))
				equal = false
				safeLength = int(math.Min(float64(len(lconf)), float64(len(econf))))
			}

			for i := 0; i < safeLength; i++ {
				if !reflect.DeepEqual(lconf[i], econf[i]) {
					t.Errorf("layer conf [%v]: %v != %v", i, lconf[i], econf[i])
					equal = false
				}
			}
		}
	}

	return equal
}