Files
2026-02-02 04:50:13 +01:00

192 lines
5.7 KiB
Plaintext

set z = "foo bar baz"
set z1 = z & " meow"
set z1 = z1 && "woof"
scummvmAssert(z1 contains "bar")
set c = chars("Macromedia", 6, 6)
scummvmAssertEqual(c, "m")
set c = chars("Macromedia", 6, 10)
scummvmAssertEqual(c, "media")
set c = chars("Macromedia", -1, 15)
scummvmAssertEqual(c, "Macromedia")
set save to the scummvmVersion
set the scummvmVersion to 300
set c = chars("Macromedia", 1, 1.1)
scummvmAssertEqual(c, 0)
set the scummvmVersion to save
put "That is the last line of the file." & return & "Click Done to exit." && return && "foo"
if the key = Return then
dontPassEvent
end if
when keydown then if the key=return then set the stagecolor to random (256)
put return
put "foo" into test
put return after test
put test
scummvmAssertEqual(test, "foo" & return)
put return before test
scummvmAssertEqual(test, return & "foo" & return)
put return into test
scummvmAssertEqual(test, return)
-- coercing strings to numbers
-- str(int) + int
scummvmAssertEqual("2" + 5, 7.0)
scummvmAssertEqual(5 + "2", 7.0)
-- str(int) + float
scummvmAssertEqual("2" + 5.5, 7.5)
scummvmAssertEqual(5.5 + "2", 7.5)
-- str(float) + int
scummvmAssertEqual("2.5" + 5, 7.5)
scummvmAssertEqual(5 + "2.5", 7.5)
-- str(float) + float
scummvmAssertEqual("2.25" + 5.5, 7.75)
scummvmAssertEqual(5.5 + "2.25", 7.75)
-- str(int) + str(int)
scummvmAssertEqual("2" + "5", 7.0)
scummvmAssertEqual("5" + "2", 7.0)
-- str(int) + str(float)
scummvmAssertEqual("2" + "5.5", 7.5)
scummvmAssertEqual("5.5" + "2", 7.5)
-- str(float) + str(int)
scummvmAssertEqual("2.5" + "5", 7.5)
scummvmAssertEqual("5" + "2.5", 7.5)
-- str(float) + str(float)
scummvmAssertEqual("2.25" + "5.5", 7.75)
scummvmAssertEqual("5.5" + "2.25", 7.75)
-- float syntax
scummvmAssertEqual("-2" + 5, 3.0)
scummvmAssertEqual("-2.5" + 5, 2.5)
scummvmAssertEqual("+2" + 5, 7.0)
scummvmAssertEqual("+2.5" + 5, 7.5)
scummvmAssertEqual("2e3" + 5, 2005.0)
scummvmAssertEqual("2.5e3" + 5, 2505.0)
scummvmAssertEqual(" 2" + 5, 7.0)
scummvmAssertEqual(" 2.5" + 5, 7.5)
-- non number strings should coerce to a pointer
scummvmAssertEqual(ilk("incorrect" + 5), #integer)
scummvmAssertEqual(ilk(" 2.5 " + 5), #integer)
scummvmAssert(ilk("2 uhhh" + 5), #integer)
scummvmAssert(ilk("2.5 uhhh" + 5), #integer)
put "sausages" into testString
put (testString + 0) into testPointer
scummvmAssertEqual(ilk(testPointer), #integer)
scummvmAssertEqual(testString + 4, testPointer + 4)
scummvmAssertEqual(testString - 4, testPointer - 4)
scummvmAssertEqual(testString * 4, testPointer * 4)
scummvmAssertEqual(testString / 4, testPointer / 4)
-- same horrible logic should apply to symbols
put #haggis into testString
put (testString + 0) into testPointer
scummvmAssertEqual(ilk(testPointer), #integer)
scummvmAssertEqual(testString + 4, testPointer + 4)
scummvmAssertEqual(testString - 4, testPointer - 4)
scummvmAssertEqual(testString * 4, testPointer * 4)
scummvmAssertEqual(testString / 4, testPointer / 4)
-- casting to integer
scummvmAssertEqual(integer("2"), 2)
scummvmAssertEqual(integer("-2"), -2)
scummvmAssertEqual(integer(" 2"), 2)
scummvmAssertEqual(integer("2.5"), VOID)
scummvmAssertEqual(integer(" 2.5"), VOID)
scummvmAssertEqual(integer("incorrect"), VOID)
scummvmAssertEqual(integer("2 extra"), 2)
scummvmAssertEqual(integer("2.5 extra"), VOID)
scummvmAssertEqual(integer(" 2 extra"), 2)
scummvmAssertEqual(integer(" 2.5 extra"), VOID)
scummvmAssertEqual(integer("2extra"), VOID)
scummvmAssertEqual(integer(" 2extra"), VOID)
-- casting to float
scummvmAssertEqual(float("2"), 2.0)
scummvmAssertEqual(float("-2"), -2.0)
scummvmAssertEqual(float(" 2"), 2.0)
scummvmAssertEqual(float("2.5"), 2.5)
scummvmAssertEqual(float(" 2.5"), 2.5)
scummvmAssertEqual(float("incorrect"), "incorrect")
scummvmAssertEqual(float("2 extra"), "2 extra")
scummvmAssertEqual(float("2.5 extra"), "2.5 extra")
scummvmAssertEqual(float(" 2 extra"), " 2 extra")
scummvmAssertEqual(float(" 2.5 extra"), " 2.5 extra")
scummvmAssertEqual(float("2extra"), "2extra")
scummvmAssertEqual(float(" 2extra"), " 2extra")
-- LC::charOF
set string to "Macromedia"
set res to char 6 of string
scummvmAssertEqual(res, "m")
-- error and bounds checks
set res to char 60 of string
scummvmAssertEqual(res, EMPTY)
set res to char 0 of string
scummvmAssertEqual(res, string)
-- Test D4, it does a floor
set res to char 5.49 of string
scummvmAssertEqual(res, "o")
set res to char 5.5 of string
scummvmAssertEqual(res, "o")
-- Test D3, it does a round
set save to the scummvmVersion
set the scummvmVersion to 300
set res to char 5.49 of string
scummvmAssertEqual(res, "o")
set res to char 5.5 of string
scummvmAssertEqual(res, "m")
set the scummvmVersion to save
-- LC::charToOf
set string to "Macromedia"
set res to char 6 to 9 of string
scummvmAssertEqual(res, "medi")
-- error and bounds checks
set res to char 5.4 to 7.9 of string
scummvmAssertEqual(res, "ome")
set res to char 6 to 5 of string
scummvmAssertEqual(res, "")
set res to char 6 to 60 of string
scummvmAssertEqual(res, "media")
set res to char -1 to -2 of string
scummvmAssertEqual(res, string)
set res to char 50 to 60 of string
scummvmAssertEqual(res, "")
-- LB::b_lastcharof
scummvmAssertEqual(the last char of "", "")
scummvmAssertEqual(the last char of "hello", "o")
-- LB::b_lastitemof
scummvmAssertEqual(the last item of "", "")
scummvmAssertEqual(the last item of "onetwo", "onetwo")
scummvmAssertEqual(the last item of "one,two", "two")
set save to the itemDelimiter
set the itemDelimiter to ":"
scummvmAssertEqual(the last item of "one:two", "two")
set the itemDelimiter to save
scummvmAssertEqual(the last item of "onetwo", "onetwo")
-- LB::b_offset
set pos to offset("mov", "mov")
scummvmAssertEqual(pos, 1)
set pos to offset("mov", "C:\GAMES\OPEN.MOV")
scummvmAssertEqual(pos, 15)