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: resolver_test.go
    path of file: ./repos/gost
    
    the code of the file until where you have to start completion: package gost

import (
	"bytes"
	"fmt"
	"io"
	"net"
	"testing"
	"time"
)

var dnsTests = []struct {
	ns   NameServer
	host string
	pass bool
}{
	{NameServer{Addr: "1.1.1.1"}, "192.168.1.1", true},
	{NameServer{Addr: "1.1.1.1"}, "github", true},
	{NameServer{Addr: "1.1.1.1"}, "github.com", true},
	{NameServer{Addr: "1.1.1.1:53"}, "github.com", true},
	{NameServer{Addr: "1.1.1.1:53", Protocol: "tcp"}, "github.com", 
    
func TestResolverCache(t *testing.T) {
	isEqual := func(a, b []net.IP) bool {
		if a == nil && b == nil {
			return true
		}

		if a == nil || b == nil || len(a) != len(b) {
			return false
		}

		for i := range a {
			if !a[i].Equal(b[i]) {
				return false
			}
		}
		return true
	}
	for i, tc := range resolverCacheTests {
		tc := tc
		t.Run(fmt.Sprintf("#%d", i), func(t *testing.T) {
			r := newResolver(tc.ttl)
			r.cache.storeCache(tc.name, tc.ips, tc.ttl)
			ips := r.cache.loadCache(tc.name, tc.ttl)

			if !isEqual(tc.result, ips) {
				t.Error("unexpected cache value:", tc.name, ips, tc.ttl)
			}
		})
	}
}