2020-02-22 22:02:44 +00:00
|
|
|
using BritishHorseRacingApi.Helpers;
|
|
|
|
|
using System;
|
|
|
|
|
using Xunit;
|
|
|
|
|
|
|
|
|
|
namespace BritishHorseRacingApi.Tests
|
|
|
|
|
{
|
|
|
|
|
public class DataConverterHelperTests
|
|
|
|
|
{
|
|
|
|
|
[Theory()]
|
|
|
|
|
[InlineData("1m 24.73s", 1, 24, 73)]
|
|
|
|
|
[InlineData("5m 42s", 5, 42, 0)]
|
|
|
|
|
[InlineData("7m 2.9s", 7, 2, 9)]
|
|
|
|
|
public void TestStopWatchStringConversion(string time, int mins, int seconds, int milliseconds)
|
|
|
|
|
{
|
|
|
|
|
//Arrange
|
|
|
|
|
//Act
|
|
|
|
|
var totalMilliseconds = DataConverterHelper.StopWatchStringToMilliseconds(time);
|
|
|
|
|
//Assert
|
|
|
|
|
var timeSpan = TimeSpan.FromMilliseconds((double)totalMilliseconds);
|
|
|
|
|
Assert.Equal(mins, timeSpan.Minutes);
|
|
|
|
|
Assert.Equal(seconds, timeSpan.Seconds);
|
|
|
|
|
Assert.Equal(milliseconds, timeSpan.Milliseconds);
|
|
|
|
|
}
|
|
|
|
|
|
2020-02-27 22:38:55 +00:00
|
|
|
[Theory()]
|
|
|
|
|
[InlineData("", null)]
|
|
|
|
|
[InlineData(null, null)]
|
|
|
|
|
[InlineData(" ", null)]
|
|
|
|
|
public void TestStopWatchStringConversionForEmpty(string time, double? expectedValue)
|
|
|
|
|
{
|
|
|
|
|
//Arrange
|
|
|
|
|
//Act
|
|
|
|
|
var totalMilliseconds = DataConverterHelper.StopWatchStringToMilliseconds(time);
|
|
|
|
|
//Assert
|
|
|
|
|
Assert.Equal(totalMilliseconds, expectedValue);
|
|
|
|
|
}
|
|
|
|
|
|
2020-02-22 22:02:44 +00:00
|
|
|
[Theory()]
|
2020-02-27 23:37:51 +00:00
|
|
|
[InlineData("1m 15.39s(+0.34s)", 340)]
|
|
|
|
|
[InlineData(null, null)]
|
|
|
|
|
[InlineData(" ", null)]
|
|
|
|
|
public void TestStopwatchStringDifferenceToMilliseconds(string time, double? expectedValue)
|
|
|
|
|
{
|
|
|
|
|
//Arrange
|
|
|
|
|
//Act
|
|
|
|
|
var totalMilliseconds = DataConverterHelper.StopwatchStringDifferenceToMilliseconds(time);
|
|
|
|
|
//Assert
|
|
|
|
|
Assert.Equal(totalMilliseconds, expectedValue);
|
|
|
|
|
}
|
2020-05-10 22:42:46 +01:00
|
|
|
[Theory]
|
|
|
|
|
[InlineData("(GoingStick:5.3 on 01-12-2018 at 08:30) Hurdle 5.3 Chase 5.3 @ 0800", 5.3)]
|
|
|
|
|
[InlineData("ABANDONED - Abandoned (48 Hours)", null)]
|
|
|
|
|
[InlineData("", null)]
|
|
|
|
|
[InlineData("Chase - Good to Soft, Good in Places Hurdle - Good to Soft (Hurdle races on Outer/Flat course) Chase 7.5; Hurdle 7.1", 7.3)]
|
|
|
|
|
public void TestGoingStickExtraction(string goingStr, double? expectedValue)
|
|
|
|
|
{
|
|
|
|
|
//Act
|
|
|
|
|
var result = DataConverterHelper.ExtractGoingStick(goingStr);
|
|
|
|
|
//Assert
|
|
|
|
|
Assert.Equal(expectedValue, result);
|
|
|
|
|
}
|
2020-02-27 23:37:51 +00:00
|
|
|
|
|
|
|
|
[Theory()]
|
|
|
|
|
[InlineData("1m 1f 104y ", 2084)]
|
2020-02-22 22:02:44 +00:00
|
|
|
[InlineData("1f 104y", 324)]
|
|
|
|
|
[InlineData("104y", 104)]
|
2020-02-27 22:47:42 +00:00
|
|
|
[InlineData("", null)]
|
|
|
|
|
[InlineData(" ", null)]
|
|
|
|
|
[InlineData(null, null)]
|
|
|
|
|
public void TestDistanceStringToYardsConversion(string distance, int? expectedResult)
|
2020-02-22 22:02:44 +00:00
|
|
|
{
|
|
|
|
|
//Arrange
|
|
|
|
|
//Act
|
|
|
|
|
var result = DataConverterHelper.DistanceStringToYards(distance);
|
|
|
|
|
//Assert
|
2020-02-27 22:47:42 +00:00
|
|
|
Assert.Equal(expectedResult, result);
|
2020-02-22 22:02:44 +00:00
|
|
|
}
|
2020-05-10 22:42:46 +01:00
|
|
|
|
|
|
|
|
[Theory]
|
|
|
|
|
[InlineData("", null)]
|
|
|
|
|
[InlineData(null, null)]
|
|
|
|
|
[InlineData("THE 32Red CASINO NOVICE AUCTION STAKES (CLASS 5)", 5)]
|
|
|
|
|
[InlineData("THE BRITISH STALLION STUDS EBF KEGWORTH NOVICE STAKES (CLASS 4) (PLUS 10 RACE) (DIV II)", 4)]
|
|
|
|
|
public void TestRaceClassExtract(string raceName, int? expectedResult)
|
|
|
|
|
{
|
|
|
|
|
//Act
|
|
|
|
|
var result = DataConverterHelper.ExtractRaceClass(raceName);
|
|
|
|
|
//Assert
|
|
|
|
|
Assert.Equal(expectedResult, result);
|
|
|
|
|
}
|
2020-02-28 19:00:13 +00:00
|
|
|
|
|
|
|
|
[Theory()]
|
2020-02-28 23:24:18 +00:00
|
|
|
[InlineData("3/5", 1.6)]
|
2020-02-29 11:27:04 +00:00
|
|
|
[InlineData("20/1", 21)]
|
2020-02-28 23:43:55 +00:00
|
|
|
[InlineData("5.5/1", 6.5)]
|
2020-02-28 19:00:13 +00:00
|
|
|
[InlineData("", null)]
|
|
|
|
|
[InlineData(" ", null)]
|
|
|
|
|
[InlineData(null, null)]
|
2020-02-28 23:24:18 +00:00
|
|
|
public void TestFractionOddsToDecimal(string value, double? expectedResult)
|
2020-02-28 19:00:13 +00:00
|
|
|
{
|
|
|
|
|
//Arrange
|
2020-02-28 23:24:18 +00:00
|
|
|
var decimalExpectedValue = (decimal?)expectedResult;
|
2020-02-28 19:00:13 +00:00
|
|
|
//Act
|
|
|
|
|
var result = DataConverterHelper.FractionOddsToDecimal(value);
|
|
|
|
|
//Assert
|
2020-02-28 23:24:18 +00:00
|
|
|
Assert.Equal(decimalExpectedValue, result);
|
2020-02-28 19:00:13 +00:00
|
|
|
}
|
2020-02-29 11:27:04 +00:00
|
|
|
|
|
|
|
|
[Theory()]
|
|
|
|
|
[InlineData("9st 4lbs", 58967.00662)]
|
|
|
|
|
[InlineData("11st 3lbs", 71214.00098)]
|
|
|
|
|
[InlineData("10lbs", 4535.92000)]
|
|
|
|
|
[InlineData("9st", 57152.63862)]
|
|
|
|
|
[InlineData("9st 0lbs", 57152.63862)]
|
|
|
|
|
[InlineData("", null)]
|
|
|
|
|
[InlineData(" ", null)]
|
|
|
|
|
[InlineData(null, null)]
|
|
|
|
|
public void TestWeightStringToGrams(string value, double? expectedResult)
|
|
|
|
|
{
|
|
|
|
|
//Arrange
|
|
|
|
|
var decimalExpectedValue = (decimal?)expectedResult;
|
|
|
|
|
//Act
|
|
|
|
|
var result = DataConverterHelper.WeightStringToGrams(value);
|
|
|
|
|
//Assert
|
|
|
|
|
Assert.Equal(decimalExpectedValue, result);
|
|
|
|
|
}
|
2020-02-22 22:02:44 +00:00
|
|
|
}
|
|
|
|
|
}
|