示例#1
0
        public void GetMarketOrderSummary_WithFee_InLoss_Returns_Correct_Summary()
        {
            var         service = new SummaryServiceImpl();
            MarketOrder order   = new(10000m, 1m, 1m, DateTime.Now, true);
            var         summary = service.GetMarketOrderSummary(order, 5000m);

            Assert.Equal(new ISummaryService.Summary(
                             -5001,
                             (5000m / (10000m + 1m)) - 1m,
                             5000,
                             10001
                             ), summary);
        }
示例#2
0
        public void GetMarketOrderSummary_ZeroCost_Returns_Zero_Summary()
        {
            var         service = new SummaryServiceImpl();
            MarketOrder order   = new(10000m, 0m, 0m, DateTime.Now, true);
            var         summary = service.GetMarketOrderSummary(order, 5000m);

            Assert.Equal(new ISummaryService.Summary(
                             0,
                             0,
                             0,
                             0
                             ), summary);
        }
示例#3
0
        public void GetMarketOrderSummary_WithoutFee_Returns_Correct_Summary()
        {
            var         service = new SummaryServiceImpl();
            MarketOrder order   = new(10000m, 0m, 1m, DateTime.Now, true);
            var         summary = service.GetMarketOrderSummary(order, 20000m);

            Assert.Equal(new ISummaryService.Summary(
                             10000,
                             1,
                             20000,
                             10000
                             ), summary);
        }
示例#4
0
        public void GetPortfolioSummary_ZeroCost_Returns_ZeroSummary()
        {
            var service = new SummaryServiceImpl();
            var summary = service.GetPortfolioSummary(new()
            {
                new(10000m, 1, 20000m, 0),
                new(2000m, 2, 3000m, 0),
            });

            Assert.Equal(
                new ISummaryService.Summary(0m, 0m, 0m, 0m),
                summary
                );
        }
示例#5
0
        public void GetPortfolioSummary_Returns_Correct_Summary()
        {
            var service = new SummaryServiceImpl();
            var summary = service.GetPortfolioSummary(new()
            {
                new(10000m, 1, 20000m, 10000),
                new(2000m, 2, 3000m, 1000),
            });

            Assert.Equal(
                new ISummaryService.Summary(12000m, (23000m / 11000m) - 1m, 23000m, 11000m),
                summary
                );
        }
示例#6
0
        public void GetPortfolioEntrySummary_ZeroCost_Returns_Zero_Summary()
        {
            var service = new SummaryServiceImpl();
            var summary = service.GetPortfolioEntrySummary(new()
            {
                new(10000m, 0m, 0m, DateTime.Now, true),
            }, 40000);

            Assert.Equal(new ISummaryService.Summary(
                             0m,
                             0m,
                             0m,
                             0m
                             ), summary);
        }
示例#7
0
        public void GetPortfolioEntrySummary_InProfit_Returns_Correct_Summary()
        {
            var service = new SummaryServiceImpl();
            var summary = service.GetPortfolioEntrySummary(new()
            {
                new(10000m, 0m, 1m, DateTime.Now, true),
                new(20000m, 0m, 1m, DateTime.Now, true)
            }, 40000);

            Assert.Equal(new ISummaryService.Summary(
                             30000m + 20000m,
                             (80000m / 30000m) - 1m,
                             80000m,
                             30000
                             ), summary);
        }
示例#8
0
        public void GetPortfolioEntrySummary_InProfit_WithSell_Returns_Correct_Summary()
        {
            var service = new SummaryServiceImpl();
            var summary = service.GetPortfolioEntrySummary(new()
            {
                new(10000m, 0m, 1m, DateTime.Now, true),
                new(20000m, 0m, 1m, DateTime.Now, true),
                new(30000m, 0m, 0.5m, DateTime.Now, false)
            }, 40000);

            Assert.Equal(new ISummaryService.Summary(
                             1.5m * 40000m + 15000m - 30000m,
                             ((1.5m * 40000m + 15000m - 30000m) / 30000m),
                             1.5m * 40000m,
                             30000
                             ), summary);
        }