code: func WalkShouldReturn(c context.Context, s dm.DepsServer, keepTimestamps ...bool) func(request interface{}, expect ...interface{}) string {
  	kt := len(keepTimestamps) > 0 && keepTimestamps[0]
  	if len(keepTimestamps) > 1 {
  		panic("may only specify 0 or 1 keepTimestamps values")
  	}
  
  	normalize := func(gd *dm.GraphData) *dm.GraphData {
  		data, err := proto.Marshal(gd)
  		panicIf(err)
  		ret := &dm.GraphData{}
  
  		panicIf(proto.Unmarshal(data, ret))
  
  		if !kt {
  			ret.PurgeTimestamps()
  		}
  		return ret
  	}
  
  	return func(request interface{}, expect ...interface{}) string {
  		r := request.(*dm.WalkGraphReq)
  		if len(expect) != 1 {
  			panic(fmt.Errorf("expected 1 arg on rhs, got %d", len(expect)))
  		}
  		e := expect[0].(*dm.GraphData)
  		ret, err := s.WalkGraph(c, r)
  		if nilExpect := assertions.ShouldErrLike(err, nil); nilExpect != "" {
  			return nilExpect
  		}
  		return convey.ShouldResemble(normalize(ret), e)
  	}
  }
docs: // WalkShouldReturn is a convey-style assertion factory to assert that a given
  // WalkGraph request object results in the provided GraphData.
  //
  // If keepTimestamps (a singular, optional boolean) is provided and true,
  // WalkShouldReturn will not remove timestamps from the compared GraphData. If
  // it is absent or false, GraphData.PurgeTimestamps will be called on the
  // returned GraphData before comparing it to the expected value.
  //
  // Use this function like:
  //   req := &dm.WalkGraphReq{...}
  //   So(req, WalkShouldReturn(c, s), &dm.GraphData{
  //     ...
  //   })