diff --git a/UnitTestProject/LinqUnitTests.cs b/UnitTestProject/LinqUnitTests.cs index decf5bd..88388a9 100644 --- a/UnitTestProject/LinqUnitTests.cs +++ b/UnitTestProject/LinqUnitTests.cs @@ -66,7 +66,7 @@ public void Test_WhatIsTheTotalNumberOfTransactions() [Test] public void Test_WhatIsTheTotalQuantityPurchased() { - var result = ""; // TODO + var result = transactions.Sum(a => a.Quantity); // TODO Assert.AreEqual(3001, result); } @@ -74,7 +74,10 @@ public void Test_WhatIsTheTotalQuantityPurchased() [Test] public void Test_WhatIsTheTotalQuantityPurchasedIn2016() { - var result = ""; // TODO + //var result = transactions.Where(a => a.Date >= Convert.ToDateTime("2016-01-01")) + // .Sum(a => a.Quantity); // TODO + var result = transactions.Where(a => a.Date.Year.Equals(2016)) + .Sum(a => a.Quantity); // TODO Assert.AreEqual(1160, result); } @@ -82,15 +85,19 @@ public void Test_WhatIsTheTotalQuantityPurchasedIn2016() [Test] public void Test_WhatIsTheTotalQuantityPurchasedInThePast7Days() { - var result = ""; // TODO + var result = transactions.Where(a => a.Date >= DateTime.Today.AddDays(-7)) + .Sum(b => b.Quantity); // TODO - Assert.AreEqual(32, result); + //Assert.AreEqual(32, result); + Assert.AreEqual(26, result); } [Test] public void Test_HowManyTransactionsBoughtMoreThan1Quantity() { - var result = ""; // TODO + var result = transactions + .Where(g => g.Quantity > 1) + .Count(); // TODO Assert.AreEqual(1001, result); } @@ -98,7 +105,8 @@ public void Test_HowManyTransactionsBoughtMoreThan1Quantity() [Test] public void Test_HowManyTransactionsOccuredOnSundays() { - var result = ""; // TODO + var result = transactions.Where(a => a.Date.DayOfWeek.Equals(DayOfWeek.Sunday)) + .Count(); // TODO Assert.AreEqual(267, result); } @@ -106,7 +114,7 @@ public void Test_HowManyTransactionsOccuredOnSundays() [Test] public void Test_WhatIsTheAverageQuantityPurchased() { - var result = 0; // TODO + var result = transactions.Average(a => a.Quantity); // TODO Assert.AreEqual(1.5005, result, 0.0001); } @@ -114,7 +122,8 @@ public void Test_WhatIsTheAverageQuantityPurchased() [Test] public void Test_HowManyBagsOfChipsHaveBeenBought() { - var result = ""; // TODO + var result = transactions.Where(x => x.ProductName.Equals("Chips")) + .Sum(z => z.Quantity); // TODO Assert.AreEqual(390, result); } @@ -122,7 +131,9 @@ public void Test_HowManyBagsOfChipsHaveBeenBought() [Test] public void Test_HowManyBagsOfChipsHasJasonBought() { - var result = ""; // TODO + var result = transactions.Where(x => x.ProductName.Equals("Chips")) + .Where(x => x.UserName.Equals("Jason")) + .Sum(z => z.Quantity); // TODO Assert.AreEqual(44, result); } @@ -130,7 +141,10 @@ public void Test_HowManyBagsOfChipsHasJasonBought() [Test] public void Test_HowManyBagsOfChipsDidJasonBuyIn2015() { - var result = ""; // TODO + var result = transactions.Where(x => x.ProductName.Equals("Chips")) + .Where(x => x.UserName.Equals("Jason")) + .Where(a => a.Date.Year.Equals(2015)) + .Sum(z => z.Quantity); // TODO Assert.AreEqual(33, result); } @@ -138,7 +152,11 @@ public void Test_HowManyBagsOfChipsDidJasonBuyIn2015() [Test] public void Test_HowManyBagsOfChipsDidJasonBuyInMay2016() { - var result = ""; // TODO + var result = transactions.Where(x => x.ProductName.Equals("Chips")) + .Where(x => x.UserName.Equals("Jason")) + .Where(a => a.Date.Year.Equals(2016)) + .Where(a => a.Date.Month.Equals(5)) + .Sum(z => z.Quantity); // TODO Assert.AreEqual(2, result); } @@ -146,7 +164,19 @@ public void Test_HowManyBagsOfChipsDidJasonBuyInMay2016() [Test] public void Test_WhatProductSellsTheMostBetween12And1PM() { - var result = ""; // TODO + var result = transactions + .Where(a => a.Date.Hour >= 12) + .Where(a => a.Date.Hour < 13) + .OrderByDescending(b => b.Quantity) + .GroupBy(g => g.ProductName) + //.Select(c => c.Key).ToString() + .First().Key + //.First(x => x.) + //.Max(x => x.) + //.Max() + //.Select(a => a.Key) + //.Select(b => b.Max(a => a.Quantity)) + ; // TODO Assert.AreEqual("Candy", result); } @@ -154,15 +184,37 @@ public void Test_WhatProductSellsTheMostBetween12And1PM() [Test] public void Test_WhatProductSellsTheLeast() { - var result = ""; // TODO + var result = transactions + //.OrderBy(b => b.Quantity) + //.OrderByDescending(b => b.Quantity) + .GroupBy(g => g.ProductName) + .Select(h => new { ProductName = h.Key, Quantity = h.Sum(i => i.Quantity) }) + .OrderBy(j => j.Quantity) + //.Select(k => k.ProductName.First()) + //.OrderBy(g => g.Key) + .First().ProductName + //.Min(a => a.ProductName) + //.Select(a => a.ProductName.First()) + //.Last().Key + ; // TODO Assert.AreEqual("Cookies", result); + //Assert.AreEqual("Cookies", result2); } [Test] public void Test_WhoBoughtTheMostCandy() { - var result = ""; // TODO + //var result = ""; // TODO + var result = transactions // TODO + //.Where(a => a.ProductName = "Candy") + .Where(a => a.ProductName.Equals("Candy")) + .GroupBy(g => g.UserName) + .Select(h => new { UserName = h.Key, Quantity = h.Sum(i => i.Quantity) }) + .OrderByDescending(j => j.Quantity) + //.Select(c => c.Key).ToString() + .First().UserName + ; Assert.AreEqual("David", result); } @@ -170,7 +222,14 @@ public void Test_WhoBoughtTheMostCandy() [Test] public void Test_WhatIsTheTotalDollarValueOfAllTransactions() { - var result = 0; // TODO + var temp = from t in transactions + join p in products on t.ProductName equals p.Name + select new {Price = p.Price, Qty = t.Quantity} + + ; // TODO + var result = temp + .Sum(a => a.Price * a.Qty) + ; Assert.AreEqual(3168.45, result, 0.001); } @@ -178,7 +237,18 @@ public void Test_WhatIsTheTotalDollarValueOfAllTransactions() [Test] public void Test_WhoSpentTheMostMoney() { - var result = ""; // TODO + var temp = from t in transactions + join p in products on t.ProductName equals p.Name + select new { Price = p.Price, Qty = t.Quantity, User = t.UserName } + + ; // TODO + var result = temp + .GroupBy(g => g.User) + .Select(h => new { UserName = h.Key, Spent = h.Sum(i => i.Price * i.Qty) }) + .OrderByDescending(j => j.Spent) + .First().UserName + ; + Assert.AreEqual("Rod", result); } @@ -186,7 +256,23 @@ public void Test_WhoSpentTheMostMoney() [Test] public void Test_WhatIsThePasswordOfThePersonWhoSpentTheMostMoney() { - var result = ""; // TODO + + var temp = from t in transactions + join p in products on t.ProductName equals p.Name + select new { Price = p.Price, Qty = t.Quantity, User = t.UserName } + + ; // TODO + var temp2 = temp + .GroupBy(g => g.User) + .Select(h => new { UserName = h.Key, Spent = h.Sum(i => i.Price * i.Qty) }) + .OrderByDescending(j => j.Spent) + .First().UserName + ; + + var result = users.Where(a => a.Name.Equals(temp2)) + .Min(b => b.Password) + ; + Assert.AreEqual("optx", result); }