code: func (f *FakeControllerSource) Change(e watch.Event, watchProbability float64) {
  	f.lock.Lock()
  	defer f.lock.Unlock()
  
  	objMeta, err := api.ObjectMetaFor(e.Object)
  	if err != nil {
  		panic(err) // this is test code only
  	}
  
  	resourceVersion := len(f.changes) + 1
  	objMeta.ResourceVersion = strconv.Itoa(resourceVersion)
  	f.changes = append(f.changes, e)
  	key := f.key(objMeta)
  	switch e.Type {
  	case watch.Added, watch.Modified:
  		f.items[key] = e.Object
  	case watch.Deleted:
  		delete(f.items, key)
  	}
  
  	if rand.Float64() < watchProbability {
  		f.broadcaster.Action(e.Type, e.Object)
  	}
  }
docs: // Change records the given event (setting the object's resource version) and
  // sends a watch event with the specified probability.