eliminate test code interface to Shop.values

Instead, replace the direct interface to Shop.values with a wrapper function to Shop.values, thereby improving the simplicity in change when/if Shop.values ever changes
eliminate test code direct interface to Shop.weights

see last commit's description