Comparison of location.Latlng and location should be valid. I don't like this. A hypothetical thingmodel v2 should remove this ugly part.
More tests
Small optimization
The base constructor was called first : bad idea