1package sheet23import "testing"45func TestLetAndLambda(t *testing.T) {6 s := fixture(t)7 if err := s.DefineName("x", rect("A1:A1")); err != nil {8 t.Fatal(err)9 }10 checkArrays(t, s, []arrCase{11 {"=LET(x, 5, x*2)", []string{"10"}},12 {"=LET(a, 2, b, a+1, a*b)", []string{"6"}},13 {"=LET(r, C1:C5, SUM(r))", []string{"15"}},14 {"=LET(s, SEQUENCE(3), s*s)", []string{"1", "4", "9"}},15 {"=x+1", []string{"11"}}, // the named range, outside LET16 {"=LET(x, 1, x) + x", []string{"11"}},17 {"=LAMBDA(v, v*3)(4)", []string{"12"}},18 {"=LAMBDA(a, b, a-b)(10, 4)", []string{"6"}},19 {"=LAMBDA(a, b, a-b)(10)", []string{"#N/A"}},20 {"=LET(double, LAMBDA(v, v*2), double(21))", []string{"42"}},21 {"=LAMBDA(v, v)", []string{"#VALUE!"}},22 {"=MAP(C1:C3, LAMBDA(v, v*10))", []string{"10", "20", "30"}},23 {"=MAP(C1:C2, G1:G2, LAMBDA(a, b, a+b))", []string{"2", "4"}},24 {"=MAP(C1:C3, LAMBDA(a, b, a))", []string{"#N/A"}},25 {"=REDUCE(0, C1:C5, LAMBDA(acc, v, acc+v))", []string{"15"}},26 {"=SCAN(0, C1:C4, LAMBDA(acc, v, acc+v))", []string{"1", "3", "6", "10"}},27 {"=BYROW(C1:E2, LAMBDA(row, SUM(row)))", []string{"2.5", "4.5"}},28 {"=BYCOL(C1:E2, LAMBDA(col, COUNT(col)))", []string{"2|0|2"}},29 {"=BYROW(C1:C2, LAMBDA(row, SEQUENCE(2)))", []string{"#VALUE!", "#VALUE!"}},30 {"=MAKEARRAY(2, 3, LAMBDA(r, c, r*c))", []string{"1|2|3", "2|4|6"}},31 })32}