public void Compute_ShouldReturnEmptyList_WhenNothingMeetsCondition(int id)
        {
            // Arrange
            var compiler = new TotalMarketCondition(_serviceProvider.Object);
            var config   = new ApiConfiguration()
            {
                TotalHashThreshold = 0.8
            };

            // Act
            var data = compiler.Compute(GetSignBidSet(id), config, new List <PoolHashrate>());

            // Assert
            Assert.IsFalse(data.Any());
        }
        public void Compute_ShouldReturnBid_WhenMetCondition()
        {
            // Arrange
            var compiler = new TotalMarketCondition(_serviceProvider.Object);

            // Total AcceptedSpeed = 45, Network Speed = 10
            var orders = GetMarketThresholdAttackMetConditionBids();

            var config = new ApiConfiguration()
            {
                TotalHashThreshold = 1
            };

            // Act
            var data = compiler.Compute(orders, config, new List <PoolHashrate>()).OrderBy(o => o.BidEntry.NiceHashId).ToList();

            // Asserts
            Assert.AreEqual(1, data.Count());
            Assert.IsNotEmpty("0", data[0].BidEntry.NiceHashId);
            Assert.AreEqual(0, data[0].BidEntry.NiceHashDataCenter);
            Assert.IsTrue(data.First().Message.Contains("AT RISK"));
        }