示例#1
0
        public void TestCommonStockYield()
        {
            // Test Common Stock

            CommonStock stock;

            stock = new CommonStock("TST", 0, 100);

            float yield;

            // Test 0/50 => 0
            yield = stock.GetDividendYield(50);
            Assert.AreEqual(0, yield, float.Epsilon);

            // Test 10/10 => 1
            stock.LastDividend = 10;
            yield = stock.GetDividendYield(10);
            Assert.AreEqual(1, yield, float.Epsilon);

            // Test 10/0 => NaN
            yield = stock.GetDividendYield(0);
            Assert.AreEqual(float.NaN, yield);

            // LastPrice

            stock = new CommonStock("TST", 0, 100);

            // Test 0/50 => 0
            stock.LastPrice = 50;
            yield = stock.GetDividendYield();
            Assert.AreEqual(0, yield, float.Epsilon);

            // Test 10/10 => 1
            stock.LastPrice = 10;
            stock.LastDividend = 10;
            yield = stock.GetDividendYield();
            Assert.AreEqual(1, yield, float.Epsilon);

            // Test 10/0 => NaN
            stock.LastPrice = 0;
            yield = stock.GetDividendYield();
            Assert.AreEqual(float.NaN, yield);
        }
示例#2
0
        public void TestCommonStockPERatio()
        {
            CommonStock stock;

            stock = new CommonStock("TST", 10, 100);

            float pe;

            // Test 0/10 => 0
            pe = stock.GetPERatio(0);
            Assert.AreEqual(0, pe, float.Epsilon);

            // Test 10/10 => 1
            pe = stock.GetPERatio(10);
            Assert.AreEqual(1, pe, float.Epsilon);

            // Test 10/0 => NaN
            stock.LastDividend = 0;
            pe = stock.GetPERatio(10);
            Assert.AreEqual(float.NaN, pe);

            // LastPrice
            stock = new CommonStock("TST", 10, 100);

            // Test 0/10 => 0
            stock.LastPrice = 0;
            pe = stock.GetPERatio();
            Assert.AreEqual(0, pe, float.Epsilon);

            // Test 10/10 => 1
            stock.LastPrice = 10;
            pe = stock.GetPERatio();
            Assert.AreEqual(1, pe, float.Epsilon);

            // Test 10/0 => NaN
            stock.LastPrice = 10;
            stock.LastDividend = 0;
            pe = stock.GetPERatio();
            Assert.AreEqual(float.NaN, pe);
        }
示例#3
0
        public void TestStockCollectionGeometricMean()
        {
            StockCollection stocks = new StockCollection();

            GenericStock stock1 = new CommonStock("TS1", 5, 100);
            GenericStock stock2 = new CommonStock("TS2", 10, 100);
            GenericStock stock3 = new CommonStock("TS3", 15, 100);
            stocks.Add(stock1);
            stocks.Add(stock2);
            stocks.Add(stock3);

            float gm;

            // If no any prices => no result
            gm = stocks.GetGeometricMean();
            Assert.AreEqual(float.NaN, gm);

            float price1 = 110;
            float price2 = 50;
            float price3 = 10;

            stock1.LastPrice = price1;
            stock2.LastPrice = price2;

            // If there is at least one stock w/o price => no result
            gm = stocks.GetGeometricMean();
            Assert.AreEqual(float.NaN, gm);

            stock3.LastPrice = price3;

            // result is the 3-sq of price1*price2*price3
            gm = stocks.GetGeometricMean();
            float mul = 1.0f;
            mul *= price1;
            mul *= price2;
            mul *= price3;
            float nsq = 1f / 3;
            Assert.AreEqual(Math.Pow(mul, nsq), gm, 0.0001f);
        }