I don't like this check -- I think we should use `structure.values(subtree=True)‘ here, and change the interface to ScalarStatistic objects accordingly (they are what's being used as input in the tests). 

Note also that this should be `subtree=True` (my bad for not catching that earlier)