public void ProgressToSteps() { var testCases = new[] { new { progress = 0.00f, totalSteps = 3, expectedResult = 0 }, new { progress = 33.33f, totalSteps = 3, expectedResult = 0 }, new { progress = 33.34f, totalSteps = 3, expectedResult = 1 }, new { progress = 49.99f, totalSteps = 3, expectedResult = 1 }, new { progress = 50.00f, totalSteps = 3, expectedResult = 1 }, new { progress = 83.33f, totalSteps = 3, expectedResult = 2 }, new { progress = 83.34f, totalSteps = 3, expectedResult = 2 }, new { progress = 100.0f, totalSteps = 3, expectedResult = 3 }, new { progress = 0f, totalSteps = 10, expectedResult = 0 }, new { progress = 10f, totalSteps = 10, expectedResult = 1 }, new { progress = 50f, totalSteps = 10, expectedResult = 5 }, new { progress = 89.9f, totalSteps = 10, expectedResult = 8 }, new { progress = 90f, totalSteps = 10, expectedResult = 9 }, new { progress = 99.99f, totalSteps = 10, expectedResult = 9 }, new { progress = 100f, totalSteps = 10, expectedResult = 10 } }; foreach (var testCase in testCases) { Assert.AreEqual( testCase.expectedResult, PlayGamesPlatform.progressToSteps(testCase.progress, testCase.totalSteps), "For progress = {0:f} and totalSteps = {1:d}", testCase.progress, testCase.totalSteps ); } }