public void ShoulReturnNameAndSecondOfTopSpeedBiker() { var bikers = new Biker[] { new Biker("tibi", 0.75, new Record[] { new Record(0.5, 1), new Record(1, 2) }), new Biker("paul", 0.95, new Record[] { new Record(1, 1), new Record(5, 2) }), new Biker("ana", 0.45, new Record[] { new Record(1, 1), new Record(2, 2) }), new Biker("maria", 0.35, new Record[] { new Record(0.5, 1), new Record(1, 2) }) }; NameAndSecond result = new NameAndSecond("paul", 2); Assert.AreEqual(result, FindBestBikerSpeed(bikers)); }
NameAndSecond FindBestBikerSpeed(Biker[] biker) { NameAndSecond nameAndSecond = new NameAndSecond(biker[0].name, biker[0].record[0].second); double maxSpeed = 0; for (int i = 1; i < biker.Length; i++) { Record bestRotations = FindMaxRotationsForOneBiker(biker[i]); double speed = bestRotations.rotations * biker[i].diameter; if (speed > maxSpeed) { maxSpeed = speed; nameAndSecond = new NameAndSecond(biker[i].name, bestRotations.second); } } return(nameAndSecond); }