My simple Cateye with a magnetic sensor matches usually within .10 of a mile with the ridewithgps route planner app on 50+ mile rides.
I stopped using Garmin because it grossly inflated elevation gains. It is more accurate to just use the ridewithgps mapping function to figure out elevation gain.