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); }
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); }
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); }