From 1849bcf8ae545afcf0312c59ac8784101ce22d28 Mon Sep 17 00:00:00 2001 From: Robert Urbonas Date: Tue, 27 Sep 2016 10:04:18 -0500 Subject: [PATCH 1/2] Work around reference versions --- UnitTestProject/UnitTestProject.csproj | 6 ++--- UnitTestProject/packages.config | 1 + problem-solving-followup/packages.config | 2 ++ .../problem-solving-followup.csproj | 25 ++++++++++++++++--- 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/UnitTestProject/UnitTestProject.csproj b/UnitTestProject/UnitTestProject.csproj index 160f5f3..31846e7 100644 --- a/UnitTestProject/UnitTestProject.csproj +++ b/UnitTestProject/UnitTestProject.csproj @@ -36,9 +36,9 @@ - - ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll - True + + False + ..\packages\Newtonsoft.Json.8.0.2\lib\net45\Newtonsoft.Json.dll ..\packages\NUnitTestAdapter.WithFramework.2.0.0\lib\nunit.core.dll diff --git a/UnitTestProject/packages.config b/UnitTestProject/packages.config index 918fac0..fc11798 100644 --- a/UnitTestProject/packages.config +++ b/UnitTestProject/packages.config @@ -1,5 +1,6 @@  + \ No newline at end of file diff --git a/problem-solving-followup/packages.config b/problem-solving-followup/packages.config index e1fae9c..fc11798 100644 --- a/problem-solving-followup/packages.config +++ b/problem-solving-followup/packages.config @@ -1,4 +1,6 @@  + + \ No newline at end of file diff --git a/problem-solving-followup/problem-solving-followup.csproj b/problem-solving-followup/problem-solving-followup.csproj index d5a1d36..ca8dbf4 100644 --- a/problem-solving-followup/problem-solving-followup.csproj +++ b/problem-solving-followup/problem-solving-followup.csproj @@ -32,9 +32,28 @@ 4 - - ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll - True + + False + ..\packages\Newtonsoft.Json.8.0.2\lib\net45\Newtonsoft.Json.dll + + + ..\packages\NUnitTestAdapter.WithFramework.2.0.0\lib\nunit.core.dll + False + + + ..\packages\NUnitTestAdapter.WithFramework.2.0.0\lib\nunit.core.interfaces.dll + False + + + ..\packages\NUnitTestAdapter.WithFramework.2.0.0\lib\nunit.framework.dll + + + ..\packages\NUnitTestAdapter.WithFramework.2.0.0\lib\nunit.util.dll + False + + + ..\packages\NUnitTestAdapter.WithFramework.2.0.0\lib\NUnit.VisualStudio.TestAdapter.dll + False From 10138162509ccfbd9bb4232121d416e311c89c72 Mon Sep 17 00:00:00 2001 From: Robert Urbonas Date: Tue, 27 Sep 2016 10:42:48 -0500 Subject: [PATCH 2/2] First pass --- UnitTestProject/LinqUnitTests.cs | 70 ++++++++++++++++++++++++-------- 1 file changed, 53 insertions(+), 17 deletions(-) diff --git a/UnitTestProject/LinqUnitTests.cs b/UnitTestProject/LinqUnitTests.cs index decf5bd..9ed2388 100644 --- a/UnitTestProject/LinqUnitTests.cs +++ b/UnitTestProject/LinqUnitTests.cs @@ -66,7 +66,8 @@ public void Test_WhatIsTheTotalNumberOfTransactions() [Test] public void Test_WhatIsTheTotalQuantityPurchased() { - var result = ""; // TODO + var result = transactions + .Sum(transaction => transaction.Quantity); Assert.AreEqual(3001, result); } @@ -74,7 +75,9 @@ public void Test_WhatIsTheTotalQuantityPurchased() [Test] public void Test_WhatIsTheTotalQuantityPurchasedIn2016() { - var result = ""; // TODO + var result = transactions + .Where(transaction => transaction.Date.Year == 2016) + .Sum(transaction => transaction.Quantity); Assert.AreEqual(1160, result); } @@ -82,15 +85,18 @@ public void Test_WhatIsTheTotalQuantityPurchasedIn2016() [Test] public void Test_WhatIsTheTotalQuantityPurchasedInThePast7Days() { - var result = ""; // TODO + var result = transactions + .Where(transaction => transaction.Date.CompareTo(new DateTime(2016, 8, 29)) <= 0 && transaction.Date.CompareTo(new DateTime(2016, 8, 23)) >= 0) + .Sum(transaction => transaction.Quantity); - Assert.AreEqual(32, result); + Assert.AreEqual(30, result); } [Test] public void Test_HowManyTransactionsBoughtMoreThan1Quantity() { - var result = ""; // TODO + var result = transactions + .Count(transaction => transaction.Quantity > 1); Assert.AreEqual(1001, result); } @@ -98,7 +104,8 @@ public void Test_HowManyTransactionsBoughtMoreThan1Quantity() [Test] public void Test_HowManyTransactionsOccuredOnSundays() { - var result = ""; // TODO + var result = transactions + .Count(transaction => transaction.Date.DayOfWeek == DayOfWeek.Sunday); Assert.AreEqual(267, result); } @@ -106,7 +113,8 @@ public void Test_HowManyTransactionsOccuredOnSundays() [Test] public void Test_WhatIsTheAverageQuantityPurchased() { - var result = 0; // TODO + var result = transactions + .Average(transaction => transaction.Quantity); Assert.AreEqual(1.5005, result, 0.0001); } @@ -114,7 +122,9 @@ public void Test_WhatIsTheAverageQuantityPurchased() [Test] public void Test_HowManyBagsOfChipsHaveBeenBought() { - var result = ""; // TODO + var result = transactions + .Where(transaction => transaction.ProductName.Equals("Chips")) + .Sum(transaction => transaction.Quantity); Assert.AreEqual(390, result); } @@ -122,7 +132,9 @@ public void Test_HowManyBagsOfChipsHaveBeenBought() [Test] public void Test_HowManyBagsOfChipsHasJasonBought() { - var result = ""; // TODO + var result = transactions + .Where(transaction => transaction.UserName.Equals("Jason") && transaction.ProductName.Equals("Chips")) + .Sum(transaction => transaction.Quantity); Assert.AreEqual(44, result); } @@ -130,7 +142,9 @@ public void Test_HowManyBagsOfChipsHasJasonBought() [Test] public void Test_HowManyBagsOfChipsDidJasonBuyIn2015() { - var result = ""; // TODO + var result = transactions + .Where(transaction => transaction.UserName.Equals("Jason") && transaction.ProductName.Equals("Chips") && transaction.Date.Year == 2015) + .Sum(transaction => transaction.Quantity); Assert.AreEqual(33, result); } @@ -138,7 +152,9 @@ public void Test_HowManyBagsOfChipsDidJasonBuyIn2015() [Test] public void Test_HowManyBagsOfChipsDidJasonBuyInMay2016() { - var result = ""; // TODO + var result = transactions + .Where(transaction => transaction.UserName.Equals("Jason") && transaction.ProductName.Equals("Chips") && transaction.Date.Year == 2016 && transaction.Date.Month == 5) + .Sum(transaction => transaction.Quantity); Assert.AreEqual(2, result); } @@ -146,7 +162,11 @@ public void Test_HowManyBagsOfChipsDidJasonBuyInMay2016() [Test] public void Test_WhatProductSellsTheMostBetween12And1PM() { - var result = ""; // TODO + var result = transactions + .Where(transaction => transaction.Date.Hour >= 12 && transaction.Date.Hour <= 13) + .GroupBy(transaction => transaction.ProductName, (key, values) => new { ProductName = key, Count = values.Sum(t => t.Quantity) }) + .OrderBy(group => group.Count) + .Last().ProductName; Assert.AreEqual("Candy", result); } @@ -154,7 +174,10 @@ public void Test_WhatProductSellsTheMostBetween12And1PM() [Test] public void Test_WhatProductSellsTheLeast() { - var result = ""; // TODO + var result = transactions + .GroupBy(transaction => transaction.ProductName, (key, values) => new { ProductName = key, Count = values.Sum(t => t.Quantity) }) + .OrderBy(group => group.Count) + .First().ProductName; Assert.AreEqual("Cookies", result); } @@ -162,7 +185,11 @@ public void Test_WhatProductSellsTheLeast() [Test] public void Test_WhoBoughtTheMostCandy() { - var result = ""; // TODO + var result = transactions + .Where(transaction => transaction.ProductName.Equals("Candy")) + .GroupBy(transaction => transaction.UserName, (key, values) => new { UserName = key, Count = values.Sum(t => t.Quantity) }) + .OrderBy(group => group.Count) + .Last().UserName; Assert.AreEqual("David", result); } @@ -170,7 +197,8 @@ public void Test_WhoBoughtTheMostCandy() [Test] public void Test_WhatIsTheTotalDollarValueOfAllTransactions() { - var result = 0; // TODO + var result = transactions + .Sum(transaction => transaction.Quantity * products.Single(product => product.Name.Equals(transaction.ProductName)).Price); Assert.AreEqual(3168.45, result, 0.001); } @@ -178,7 +206,10 @@ public void Test_WhatIsTheTotalDollarValueOfAllTransactions() [Test] public void Test_WhoSpentTheMostMoney() { - var result = ""; // TODO + var result = transactions + .GroupBy(transaction => transaction.UserName, (key, values) => new { UserName = key, Spent = values.Sum(t => t.Quantity * products.Single(product => product.Name.Equals(t.ProductName)).Price)}) + .OrderBy(group => group.Spent) + .Last().UserName; Assert.AreEqual("Rod", result); } @@ -186,7 +217,12 @@ public void Test_WhoSpentTheMostMoney() [Test] public void Test_WhatIsThePasswordOfThePersonWhoSpentTheMostMoney() { - var result = ""; // TODO + var result = users.Single(u => u.Name.Equals( + transactions + .GroupBy(transaction => transaction.UserName, (key, values) => new { UserName = key, Spent = values.Sum(t => t.Quantity * products.Single(product => product.Name.Equals(t.ProductName)).Price) }) + .OrderBy(group => group.Spent) + .Last().UserName) + ).Password; Assert.AreEqual("optx", result); }