public void AverageDropFeesReturned() { InvoiceAnalysis ia = new InvoiceAnalysis(fh.InvoiceFiles()); // All decimal expected = 52.90m; decimal actual = ia.AverageDropFees(); Assert.Equal(expected, actual, 2); // 18-19 Tax Year decimal expected1 = 58.03m; decimal actual1 = ia.AverageDropFees(Array.FindAll(ia.Invoices, x => (x.Date <= new DateTime(2019, 4, 5) && x.Date >= new DateTime(2018, 4, 6)))); Assert.Equal(expected1, actual1, 2); }
private static void RunAnalytics(InvoiceAnalysis analyser, IInvoice[] invoices) { Console.WriteLine("*FIGURES*\n"); if (invoices == null) { Console.WriteLine($"Invoices Count: {analyser.Invoices.Length}"); } else { Console.WriteLine($"Invoices Count: {invoices.Length}"); } Console.WriteLine($"Total: £{analyser.Total(invoices)} \nOrders Delivered: {analyser.OrdersDelivered(invoices)} \nDrop Fees: £{analyser.DropFees(invoices)} \nTips: £{analyser.Tips(invoices)} " + $"\nAdjustments: £{analyser.Adjustments(invoices)} \nTransaction Fees: £{analyser.TransactionFees(invoices)} \nHours Worked: {analyser.HoursWorked(invoices)}h\n"); WriteBar(); Console.WriteLine("*AVERAGES*\n"); Console.WriteLine($"Average Total: £{analyser.AverageTotal(invoices)} \nAverage Orders Delivered: {analyser.AverageOrdersPerInvoice(invoices)} " + $"\nAverage Drop Fees: £{analyser.AverageDropFees(invoices)} \nAverage Tips: £{analyser.AverageTips(invoices)} \nAverage Hours Worked: {analyser.AverageHoursWorked(invoices)}h\n"); WriteBar(); Console.WriteLine("*STATS*\n"); Console.WriteLine($"Hourly Earnings: £{analyser.HourlyEarnings(invoices)} p/h \nOrders per Hour: {analyser.OrdersPerHour(invoices)} p/h \nFee per Order: £{analyser.AverageOrderFee(invoices)} \n" + $"Tips per Order: £{analyser.TipPerOrder(invoices)} \nOrders per £1 Tip: {analyser.OrdersPerTip(invoices)}\n"); }