code: func (cache *schedulerCache) cleanupAssumedPods(now time.Time) {
  	cache.mu.Lock()
  	defer cache.mu.Unlock()
  
  	// The size of assumedPods should be small
  	for key := range cache.assumedPods {
  		ps, ok := cache.podStates[key]
  		if !ok {
  			panic("Key found in assumed set but not in podStates. Potentially a logical error.")
  		}
  		if !ps.bindingFinished {
  			klog.V(3).Infof("Couldn't expire cache for pod %v/%v. Binding is still in progress.",
  				ps.pod.Namespace, ps.pod.Name)
  			continue
  		}
  		if now.After(*ps.deadline) {
  			klog.Warningf("Pod %s/%s expired", ps.pod.Namespace, ps.pod.Name)
  			if err := cache.expirePod(key, ps); err != nil {
  				klog.Errorf("ExpirePod failed for %s: %v", key, err)
  			}
  		}
  	}
  }
docs: // cleanupAssumedPods exists for making test deterministic by taking time as input argument.