_Gear__ratio method does not exist in class Gear.
I suspect all gear._Gear__ratio should be __ratio since def __ratio is the next closest method that calculates a value the test test_calculates_ratio is expecting.
chainring=52 divide cog=11 and rounding 2dp gives 4.73, which is coincidentally also the implementation of def __ratio)