public void FindAllByPrice_On100000ElementsWithRandomPrice_ShouldWorkFast() { // Arrange IProductStock stock = new Instock(); const int count = 100_000; List <Product> expected = new List <Product>(); Random random = new Random(); for (int i = 0; i < count; i++) { int price = random.Next(5, 30); Product p = new Product(i.ToString(), price, 25); if (price == 21) { expected.Add(p); } stock.Add(p); } Stopwatch sw = Stopwatch.StartNew(); // Act IEnumerable <Product> FindAllByPrice() => stock.FindAllByPrice(21); // Assert CollectionAssert.AreEqual(expected, FindAllByPrice()); sw.Stop(); Assert.Less(sw.ElapsedMilliseconds, 25); }
public void FindByPrice_On_ExistingItems_ShouldReturn_Correct_Enumeration() { //Arrange IProductStock stock = new Instock(); Product product1 = new Product("SalamShpekov", 2.65, 50); Product product2 = new Product("BekonNov", 2.65, 43); Product product3 = new Product("MayonezaNiskomaslena", 1.30, 13); Product product4 = new Product("Ketchup", 2.65, 73); Product product5 = new Product("Jelqzo", 0.70, 20); Product product6 = new Product("Belina", .75, 50); Product product7 = new Product("Sirene", .77, 50); List <Product> expected = new List <Product>() { product1, product2, product4 }; //Act stock.Add(product1); stock.Add(product2); stock.Add(product3); stock.Add(product4); stock.Add(product5); stock.Add(product6); stock.Add(product7); //Assert List <Product> actual = stock.FindAllByPrice(2.65).ToList(); CollectionAssert.AreEqual(expected, actual); }
static void Main(string[] args) { Instock products = new Instock(); var pr1 = new Product("salam", 10, 2); var pr2 = new Product("masla", 10, 1); var pr3 = new Product("bob", 10, 3); products.Add(pr1); products.Add(pr2); products.Add(pr3); var res = products.FindAllByPrice(10); System.Console.WriteLine( ); }
public void FindByPrice_UnderFloatingPoint_PrecisionSurcumstances_ShouldNotFail() { //Arrange IProductStock stock = new Instock(); Product product1 = new Product("SalamShpekov", 3.50, 50); Product product2 = new Product("BekonNov", 2.65, 43); Product product3 = new Product("MayonezaNiskomaslena", 1.30, 13); //Act stock.Add(product1); stock.Add(product2); stock.Add(product3); //Assert List <Product> actual = stock.FindAllByPrice(1.2999999).ToList(); CollectionAssert.AreEqual(new List <Product>(), actual); }
public void FindByPrice_On_Non_ExistantPrice_ShouldReturn_Empty_Enumeration() { //Arrange IProductStock stock = new Instock(); Product product1 = new Product("SalamShpekov", 3.50, 50); Product product2 = new Product("BekonNov", 2.65, 43); Product product3 = new Product("MayonezaNiskomaslena", 1.30, 13); //Act stock.Add(product1); stock.Add(product2); stock.Add(product3); //Assert List <Product> actual = stock.FindAllByPrice(0.70).ToList(); CollectionAssert.AreEqual(new List <Product>(), actual); }
public static void Main() { var stock = new Instock(); var productA = new Product("A", 50, 100); var productC = new Product("C", 100, 10); var productB = new Product("B", 50, 3); stock.Add(productA); stock.Add(productC); stock.Add(productB); var contains = stock.Contains(productC); var find = stock.Find(0); stock.ChangeQuantity("C", -10); var byLabel = stock.FindByLabel("C"); var firstCountByAscLabel = stock.FindFirstByAlphabeticalOrder(2); var byPriceRange = stock.FindAllInRange(30, 500); var byPrice = stock.FindAllByPrice(50); var firstMostExpensive = stock.FindFirstMostExpensiveProducts(2); }