summaryrefslogtreecommitdiff
path: root/calc_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'calc_test.go')
-rw-r--r--calc_test.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/calc_test.go b/calc_test.go
index 880c40a..c18176f 100644
--- a/calc_test.go
+++ b/calc_test.go
@@ -1508,6 +1508,7 @@ func TestCalcCellValue(t *testing.T) {
"=PRICE(\"04/01/2012\",\"02/01/2020\",12%,10%,100,2)": "110.65510517844305",
"=PRICE(\"04/01/2012\",\"02/01/2020\",12%,10%,100,2,4)": "110.65510517844305",
"=PRICE(\"04/01/2012\",\"03/31/2020\",12%,10%,100,2)": "110.83448359321572",
+ "=PRICE(\"01/01/2010\",\"06/30/2010\",0.5,1,1,1,4)": "8.924190888476605",
// PPMT
"=PPMT(0.05/12,2,60,50000)": "-738.2918003208238",
"=PPMT(0.035/4,2,8,0,5000,1)": "-606.1094824182949",
@@ -1552,6 +1553,12 @@ func TestCalcCellValue(t *testing.T) {
"=VDB(24000,3000,10,0.1,1,1)": "2138.3999999999996",
"=VDB(24000,3000,100,50,100,1)": "10377.294418465235",
"=VDB(24000,3000,100,50,100,2)": "5740.072322090805",
+ // YIELD
+ "=YIELD(\"01/01/2010\",\"06/30/2015\",10%,101,100,4)": "0.0975631546829798",
+ "=YIELD(\"01/01/2010\",\"06/30/2015\",10%,101,100,4,4)": "0.0976269355643988",
+ "=YIELD(\"01/01/2010\",\"06/30/2010\",0.5,1,1,1,4)": "1.91285866099894",
+ "=YIELD(\"01/01/2010\",\"06/30/2010\",0,1,1,1,4)": "0",
+ "=YIELD(\"01/01/2010\",\"01/02/2020\",100,68.15518653988686,1,1,1)": "64",
// YIELDDISC
"=YIELDDISC(\"01/01/2017\",\"06/30/2017\",97,100)": "0.0622012325059031",
"=YIELDDISC(\"01/01/2017\",\"06/30/2017\",97,100,0)": "0.0622012325059031",
@@ -3124,6 +3131,21 @@ func TestCalcCellValue(t *testing.T) {
"=VDB(10000,1000,5,0,\"\")": "strconv.ParseFloat: parsing \"\": invalid syntax",
"=VDB(10000,1000,5,0,1,\"\")": "#NUM!",
"=VDB(10000,1000,5,0,1,0.2,\"\")": "#NUM!",
+ // YIELD
+ "=YIELD()": "YIELD requires 6 or 7 arguments",
+ "=YIELD(\"\",\"06/30/2015\",10%,101,100,4)": "#VALUE!",
+ "=YIELD(\"01/01/2010\",\"\",10%,101,100,4)": "#VALUE!",
+ "=YIELD(\"01/01/2010\",\"06/30/2015\",\"\",101,100,4)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=YIELD(\"01/01/2010\",\"06/30/2015\",10%,\"\",100,4)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=YIELD(\"01/01/2010\",\"06/30/2015\",10%,101,\"\",4)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=YIELD(\"01/01/2010\",\"06/30/2015\",10%,101,100,\"\")": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=YIELD(\"01/01/2010\",\"06/30/2015\",10%,101,100,4,\"\")": "#NUM!",
+ "=YIELD(\"01/01/2010\",\"06/30/2015\",10%,101,100,3)": "#NUM!",
+ "=YIELD(\"01/01/2010\",\"06/30/2015\",10%,101,100,4,5)": "invalid basis",
+ "=YIELD(\"01/01/2010\",\"06/30/2015\",-1,101,100,4)": "PRICE requires rate >= 0",
+ "=YIELD(\"01/01/2010\",\"06/30/2015\",10%,0,100,4)": "PRICE requires pr > 0",
+ "=YIELD(\"01/01/2010\",\"06/30/2015\",10%,101,-1,4)": "PRICE requires redemption >= 0",
+ // "=YIELD(\"01/01/2010\",\"06/30/2015\",10%,101,100,4)": "PRICE requires rate >= 0",
// YIELDDISC
"=YIELDDISC()": "YIELDDISC requires 4 or 5 arguments",
"=YIELDDISC(\"\",\"06/30/2017\",97,100,0)": "#VALUE!",