diff --git a/UnitTestProject/LinqUnitTests.cs b/UnitTestProject/LinqUnitTests.cs index decf5bd..9b40f4e 100644 --- a/UnitTestProject/LinqUnitTests.cs +++ b/UnitTestProject/LinqUnitTests.cs @@ -1,12 +1,15 @@ using System; +using System.Diagnostics.CodeAnalysis; using System.Text; using System.Collections.Generic; +using Microsoft.VisualStudio.TestTools.UnitTesting; using problem_solving_followup; using Newtonsoft.Json; using System.IO; using System.Linq; using NUnit.Framework; using System.Runtime.Serialization.Formatters.Binary; +using Assert = NUnit.Framework.Assert; namespace UnitTestProject { @@ -66,7 +69,7 @@ public void Test_WhatIsTheTotalNumberOfTransactions() [Test] public void Test_WhatIsTheTotalQuantityPurchased() { - var result = ""; // TODO + var result = transactions.Sum(t => t.Quantity); Assert.AreEqual(3001, result); } @@ -74,7 +77,8 @@ public void Test_WhatIsTheTotalQuantityPurchased() [Test] public void Test_WhatIsTheTotalQuantityPurchasedIn2016() { - var result = ""; // TODO + var result = transactions.Where(t => t.Date.Year == 2016) + .Sum(t => t.Quantity); Assert.AreEqual(1160, result); } @@ -82,7 +86,8 @@ public void Test_WhatIsTheTotalQuantityPurchasedIn2016() [Test] public void Test_WhatIsTheTotalQuantityPurchasedInThePast7Days() { - var result = ""; // TODO + var result = transactions.Where(t => t.Date >= DateTime.Now.AddDays(-9)) + .Sum(t => t.Quantity); Assert.AreEqual(32, result); } @@ -90,7 +95,7 @@ public void Test_WhatIsTheTotalQuantityPurchasedInThePast7Days() [Test] public void Test_HowManyTransactionsBoughtMoreThan1Quantity() { - var result = ""; // TODO + var result = transactions.Count(t => t.Quantity > 1); Assert.AreEqual(1001, result); } @@ -98,7 +103,7 @@ public void Test_HowManyTransactionsBoughtMoreThan1Quantity() [Test] public void Test_HowManyTransactionsOccuredOnSundays() { - var result = ""; // TODO + var result = transactions.Count(t => t.Date.DayOfWeek == DayOfWeek.Sunday); Assert.AreEqual(267, result); } @@ -106,7 +111,7 @@ public void Test_HowManyTransactionsOccuredOnSundays() [Test] public void Test_WhatIsTheAverageQuantityPurchased() { - var result = 0; // TODO + var result = transactions.Average(t => t.Quantity); Assert.AreEqual(1.5005, result, 0.0001); } @@ -114,7 +119,8 @@ public void Test_WhatIsTheAverageQuantityPurchased() [Test] public void Test_HowManyBagsOfChipsHaveBeenBought() { - var result = ""; // TODO + var result = transactions.Where(t => t.ProductName.Equals("Chips")) + .Sum(t => t.Quantity); Assert.AreEqual(390, result); } @@ -122,7 +128,9 @@ public void Test_HowManyBagsOfChipsHaveBeenBought() [Test] public void Test_HowManyBagsOfChipsHasJasonBought() { - var result = ""; // TODO + var result = transactions.Where(t => t.ProductName.Equals("Chips")) + .Where(t => t.UserName.Equals("Jason")) + .Sum(t => t.Quantity); Assert.AreEqual(44, result); } @@ -130,7 +138,10 @@ public void Test_HowManyBagsOfChipsHasJasonBought() [Test] public void Test_HowManyBagsOfChipsDidJasonBuyIn2015() { - var result = ""; // TODO + var result = transactions.Where(t => t.ProductName.Equals("Chips")) + .Where(t => t.UserName.Equals("Jason")) + .Where(t => t.Date.Year == 2015) + .Sum(t => t.Quantity); Assert.AreEqual(33, result); } @@ -138,7 +149,10 @@ public void Test_HowManyBagsOfChipsDidJasonBuyIn2015() [Test] public void Test_HowManyBagsOfChipsDidJasonBuyInMay2016() { - var result = ""; // TODO + var result = transactions.Where(t => t.ProductName.Equals("Chips")) + .Where(t => t.UserName.Equals("Jason")) + .Where(t => t.Date.Year == 2016 && t.Date.Month == 5) + .Sum(t => t.Quantity); Assert.AreEqual(2, result); } @@ -146,15 +160,25 @@ public void Test_HowManyBagsOfChipsDidJasonBuyInMay2016() [Test] public void Test_WhatProductSellsTheMostBetween12And1PM() { - var result = ""; // TODO - + var result = + transactions + .Where(t => t.Date.Hour >= 12 && t.Date.Hour <= 13) + .GroupBy(g => g.ProductName) + .Select(g => new {g.Key, Qty = g.Sum(t => t.Quantity)}) + .OrderBy(g => g.Qty) + .Last().Key; + Assert.AreEqual("Candy", result); } [Test] public void Test_WhatProductSellsTheLeast() { - var result = ""; // TODO + var result = transactions + .GroupBy(g => g.ProductName) + .Select(g => new { g.Key, Qty = g.Sum(t => t.Quantity) }) + .OrderBy(g => g.Qty) + .First().Key; Assert.AreEqual("Cookies", result); } @@ -162,21 +186,18 @@ public void Test_WhatProductSellsTheLeast() [Test] public void Test_WhoBoughtTheMostCandy() { - var result = ""; // TODO + var result = transactions + .Where(t => t.ProductName.Equals("Candy")) + .GroupBy(g => g.UserName) + .Select(g => new { g.Key, Qty = g.Sum(t => t.Quantity) }) + .OrderBy(g => g.Qty) + .Last().Key; Assert.AreEqual("David", result); } [Test] public void Test_WhatIsTheTotalDollarValueOfAllTransactions() - { - var result = 0; // TODO - - Assert.AreEqual(3168.45, result, 0.001); - } - - [Test] - public void Test_WhoSpentTheMostMoney() { var result = ""; // TODO