A bit of pseudo-code describing (at a very high level of abstraction) how an AddressBaseGeocoder()
and a FuzzyGeocoder()
(based on ONSPD) should behave and how we would interact with them.
g = AddressBaseGeocoder('SA8 4DA')
g.getLocalAuth() raises MultipleCodesException
g.getLocalAuth("10010020128") returns "W06000011"
g.getLocalAuth("100100624439") returns "W06000012"
g.getLocalAuth("spoons") raises NotFoundException
g = FuzzyGeocoder('SA8 4DA')