func printFeature(client pb.RouteGuideService, point *pb.Point) {
	logger.Tracef("Getting feature for point (%d, %d)", point.Latitude, point.Longitude)
	ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
	defer cancel()
	feature, err := client.GetFeature(ctx, point)
	if err != nil {
		logger.Fatalf("%v.GetFeatures(_) = _, %v: ", client, err)
	}
	logger.Tracef("Got Features: %v", feature)
}
printFeature gets the feature for the given point.
package main
import (
	"context"
	"io"
	"math/rand"
	"time"
	"github.com/micro/micro/v3/service"
	"github.com/micro/micro/v3/service/logger"
	pb "github.com/micro/services/test/routes/proto"
)
func main() {
	srv := service.New()
	cli := pb.NewRouteGuideService("rpc", srv.Client())
	logger.Infof("Testing Unary... Starting")
	printFeature(cli, &pb.Point{Latitude: 409146138, Longitude: -746188906})
	printFeature(cli, &pb.Point{Latitude: 0, Longitude: 0})
	logger.Infof("Testing Unary... Done")
	logger.Infof("Testing Server Streaming... Starting")
	printFeatures(cli, &pb.Rectangle{
		Lo: &pb.Point{Latitude: 400000000, Longitude: -750000000},
		Hi: &pb.Point{Latitude: 420000000, Longitude: -730000000},
	})
	logger.Infof("Testing Server Streaming... Done")
	logger.Infof("Testing Client Streaming... Starting")
	runRecordRoute(cli)
	logger.Infof("Testing Client Streaming... Done")
	logger.Infof("Testing Bidirectional Streaming... Starting")
	runRouteChat(cli)
	logger.Infof("Testing Bidirectional Streaming... Done")
	logger.Infof("Client completed ok")
	srv.Run()
}