let goodwant = "door1"; let badwant = "door4"; let got = select goodwant, "OOPS", { door1 = "grand prize", door2 = "you lose", }; let defaultgot = select badwant, "OOPS", { door1 = "grand prize", door2 = "you lose", }; assert { ok = got == "grand prize", desc = "got == \"grand prize\"", }; assert { ok = defaultgot == "OOPS", desc = "defaultgot == \"OOPS\"", }; // select inside a function let condfunc = func (arg) => { output = select arg, NULL, { opt1 = "yay", opt2 = "boo", }, }; let result = condfunc("opt1"); assert { ok = condfunc("opt1") == {output = "yay"}, desc = "condfunc(\"opt1\") == {output = \"yay\"}", }; assert { ok = condfunc("opt2") == {output = "boo"}, desc = "condfunc(\"opt2\") == {output = \"boo\"}", }; assert { ok = condfunc("invalid") == {output = NULL}, desc = "condfunc(\"invalid\") == {output = NULL}", }; let iflike = select true, "default", { true = "I was true", false = "I was false", }; assert { ok = iflike == "I was true", desc = "iflike == \"I was true\"", }; let no_default_test = func(b) => select b, { true = "I was true", false = "I was false", }; assert { ok = no_default_test(true) == "I was true", desc = "no default successfully detects true", }; assert { ok = no_default_test(false) == "I was false", desc = "no default successfully detects false", };