public void PrevYearDateIsRetrievedCorrect() { var rates = new YearRates(2017, new[] { "Date|1 TST|1 TRY", "01.Jan 2017|13.01|15.01" }, m_Config, m_Parser, null); var result = rates[new DateTime(2015, 12, 31)]?.ToArray(); Assert.IsNull(result, "Result is not null"); }
[TestMethod] public void MultipleLinesAreStoredCorrectly() { var rates = new YearRates(2017, new[] { "Date|1 TST|1 TRY", "01.Jan 2017|13.01|15.01", "01.Mar 2017|17.01|19.01", "01.Jun 2017|21.01|23.01" }, m_Config, m_Parser, null); var result = rates[new DateTime(2017, 1, 31)]?.ToArray(); Assert.IsNotNull(result, "Result #1 is null"); Assert.AreEqual(2, result.Length, "Result #1 length is incorrect"); Assert.AreEqual("1 TST", result[0].Key, "Key #1-0 is incorrect"); Assert.AreEqual("1 TRY", result[1].Key, "Key #1-1 is incorrect"); Assert.AreEqual(13.01f, result[0].Value, "Value #1-0 is incorrect"); Assert.AreEqual(15.01f, result[1].Value, "Value #1-1 is incorrect"); result = rates[new DateTime(2017, 3, 1)]?.ToArray(); Assert.IsNotNull(result, "Result #2 is null"); Assert.AreEqual(2, result.Length, "Result #2 length is incorrect"); Assert.AreEqual("1 TST", result[0].Key, "Key #2-0 is incorrect"); Assert.AreEqual("1 TRY", result[1].Key, "Key #2-1 is incorrect"); Assert.AreEqual(17.01f, result[0].Value, "Value #2-0 is incorrect"); Assert.AreEqual(19.01f, result[1].Value, "Value #2-1 is incorrect"); result = rates[new DateTime(2018, 12, 31)]?.ToArray(); Assert.IsNotNull(result, "Result #3 is null"); Assert.AreEqual(2, result.Length, "Result #3 length is incorrect"); Assert.AreEqual("1 TST", result[0].Key, "Key #3-0 is incorrect"); Assert.AreEqual("1 TRY", result[1].Key, "Key #3-1 is incorrect"); Assert.AreEqual(21.01f, result[0].Value, "Value #3-0 is incorrect"); Assert.AreEqual(23.01f, result[1].Value, "Value #3-1 is incorrect"); }
public void ThisYearPrevDateIsRetrievedCorrect() { var rates = new YearRates(2017, new[] { "Date|1 TST|1 TRY", "02.Jan 2017|13.01|15.01" }, m_Config, m_Parser, null); var result = rates[new DateTime(2017, 1, 1)]?.ToArray(); Assert.IsNotNull(result, "Result is null"); Assert.AreEqual(2, result.Length, "Result length is incorrect"); Assert.AreEqual("1 TST", result[0].Key, "Key #0 is incorrect"); Assert.AreEqual("1 TRY", result[1].Key, "Key #1 is incorrect"); Assert.AreEqual(float.NaN, result[0].Value, "Value #0 is incorrect"); Assert.AreEqual(float.NaN, result[1].Value, "Value #1 is incorrect"); }
public void InvalidFloatIsTreatedAsNaN() { var rates = new YearRates(2017, new[] { "Date|1 TST|1 TRY", "01.Jan 2017|13.01|15,01" }, m_Config, m_Parser, null); var result = rates[new DateTime(2017, 1, 1)]?.ToArray(); Assert.IsNotNull(result, "Result is null"); Assert.AreEqual(2, result.Length, "Result length is incorrect"); Assert.AreEqual("1 TST", result[0].Key, "Key #0 is incorrect"); Assert.AreEqual("1 TRY", result[1].Key, "Key #1 is incorrect"); Assert.AreEqual(13.01f, result[0].Value, "Value #0 is incorrect"); Assert.AreEqual(float.NaN, result[1].Value, "Value #1 is incorrect"); }
public void LongLineIsIgnored() { var rates = new YearRates(2017, new[] { "Date|1 TST|1 TRY", "01.Jan 2017|13.01|15.01|17.01" }, m_Config, m_Parser, null); var result = rates[new DateTime(2017, 1, 1)]?.ToArray(); Assert.IsNotNull(result, "Result is null"); Assert.AreEqual(2, result.Length, "Result length is incorrect"); Assert.AreEqual("1 TST", result[0].Key, "Key #0 is incorrect"); Assert.AreEqual("1 TRY", result[1].Key, "Key #1 is incorrect"); Assert.AreEqual(13.01f, result[0].Value, "Value #0 is incorrect"); Assert.AreEqual(15.01f, result[1].Value, "Value #1 is incorrect"); }
public void StorageIsWorking() { var storage = Storage.Instance; Assert.IsNull(storage[DateTime.Today], "Empty storage returns not null"); Assert.IsFalse(storage.TryAddYear(2017, null, m_Parser, m_Config, null), "Successfully added with invalid params"); var lines2016 = new[] { "Data|1 GHJ|100500 QWE", "01.Jul 2016|1.1|2.1" }; Assert.IsTrue(storage.TryAddYear(2016, lines2016, m_Parser, m_Config, null), "Unable to add with valid params"); var rates2016 = new YearRates(2016, lines2016, m_Config, m_Parser, null); Assert.IsNull(storage[new DateTime(2015, 12, 31)]?.ToArray(), "Value before storage is invalid"); Assert.IsTrue( rates2016[new DateTime(2016, 01, 01)].SequenceEqual( storage[new DateTime(2016, 01, 01)]), "Value at the beginning of storage is invalid"); Assert.IsTrue( rates2016[new DateTime(2016, 07, 01)].SequenceEqual( storage[new DateTime(2016, 07, 01)]), "Value in the middle of storage is invalid"); Assert.IsTrue( rates2016[new DateTime(2017, 03, 01)].SequenceEqual( storage[new DateTime(2017, 03, 01)]), "Value in the end of storage is invalid"); Assert.IsFalse(storage.TryAddYear(2016, lines2016, m_Parser, m_Config, null), "Successfully added duplicate"); var lines2017 = new[] { "Data|1 GHQ|100500 QWE", "01.Feb 2017|3.1|4.1" }; var rates2017 = new YearRates(2017, lines2017, m_Config, m_Parser, null); Assert.IsTrue(storage.TryAddYear(2017, lines2017, m_Parser, m_Config, null), "Unable to add with valid params #2"); Assert.IsTrue( rates2017[new DateTime(2017, 03, 01)].SequenceEqual( storage[new DateTime(2017, 03, 01)]), "Value haven't changed after add"); }