コード例 #1
0
        public void UnitializedBreakList_GetUnitPrice()
        {
            var tmp = new BaseOrderable();

            Assert.AreEqual(0D, tmp.GetUnitPriceForQty(), DBL_PRECISION);
            foreach (int i in allRandIntRanges)
            {
                Assert.AreEqual(0D, tmp.GetUnitPriceForQty(i), DBL_PRECISION);
            }
        }
コード例 #2
0
        public ResolverMatrix(BaseOrderable part, long qty)
        {
            ID = part.ID;

            MaxOrderable  = part.GetMaxOrderableQty(qty);
            MinAdjustment = part.GetMinimumAmountToFulfillInterval(qty);

            UnitCost  = part.GetUnitPriceForQty(MaxOrderable);
            TotalCost = UnitCost * MaxOrderable;

            isMOQ1 = part.QtyInterval == 1;
        }
コード例 #3
0
        public void BreakList_GetUnitPrice_noRequest()
        {
            Assert.AreEqual(0D, testTarget.GetUnitPriceForQty(), DBL_PRECISION);
            Assert.AreEqual(0D, testTarget.GetUnitPriceForQty(-1), DBL_PRECISION);
            Assert.AreEqual(0D, testTarget.GetUnitPriceForQty(0), DBL_PRECISION);

            Assert.AreEqual(1.0D, testTarget.GetUnitPriceForQty(1), DBL_PRECISION);
            Assert.AreEqual(1.0D, testTarget.GetUnitPriceForQty(5), DBL_PRECISION);
            Assert.AreEqual(1.0D, testTarget.GetUnitPriceForQty(9), DBL_PRECISION);

            Assert.AreEqual(0.1D, testTarget.GetUnitPriceForQty(10), DBL_PRECISION);
            Assert.AreEqual(0.1D, testTarget.GetUnitPriceForQty(12), DBL_PRECISION);
            Assert.AreEqual(0.1D, testTarget.GetUnitPriceForQty(19), DBL_PRECISION);

            Assert.AreEqual(0.01D, testTarget.GetUnitPriceForQty(100), DBL_PRECISION);
            Assert.AreEqual(0.01D, testTarget.GetUnitPriceForQty(101), DBL_PRECISION);
            Assert.AreEqual(0.01D, testTarget.GetUnitPriceForQty(750), DBL_PRECISION);

            Assert.AreEqual(0.001D, testTarget.GetUnitPriceForQty(1000), DBL_PRECISION);
            Assert.AreEqual(0.001D, testTarget.GetUnitPriceForQty(50000), DBL_PRECISION);
        }