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 macro let condmacro = macro(arg) => { output = select arg, NULL, { opt1 = "yay", opt2 = "boo", }, }; let result = condmacro("opt1"); assert { ok = condmacro("opt1") == {output = "yay"}, desc = "condmacro(\"opt1\") == {output = \"yay\"}", }; assert { ok = condmacro("opt2") == {output = "boo"}, desc = "condmacro(\"opt2\") == {output = \"boo\"}", }; assert { ok = condmacro("invalid") == {output = NULL}, desc = "condmacro(\"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\"", };