val urban_prices = List(List(Some(311.349976), Some(27.505054)),
List(Some(300.222351), Some(42.357094)),
List(Some(330.555054), Some(52.852215)))
assert(CW6c.yearly_yield(CW6c.get_deltas(urban_prices), 100, 0) == 125)
val urban_blchip_portfolio = List("GOOG", "AAPL", "MSFT", "IBM", "FB", "AMZN", "BIDU")
val urban_rstate_portfolio = List("PLD", "PSA", "AMT", "AIV", "AVB", "BXP", "CCI",
"DLR", "EQIX", "EQR", "ESS", "EXR", "FRT", "GGP", "HCP")
val urban_rstate_res = CW6c.investment(urban_rstate_portfolio, 1978 to 2017, 100)
val urban_blchip_res = CW6c.investment(urban_blchip_portfolio, 1978 to 2017, 100)
// the rstate value is 30895 because of a faulty ESS.cvs file
// if you round after each year to a Long you get 30895 and 349597
// if you work with doubles until the end and then round to a Long you get 30937 and 355204
assert((urban_rstate_res > 30885 && urban_rstate_res < 30905) ||
(urban_rstate_res > 30927 && urban_rstate_res < 30947))
assert((urban_blchip_res > 349587 && urban_blchip_res < 349607) ||
(urban_blchip_res > 355194 && urban_blchip_res < 355214))