mirror of
https://github.com/Sei-Lisa/LSL-PyOptimizer
synced 2025-07-02 08:08:20 +00:00
Add the new test suite.
This test suite has been in use for a long time now, in place of the obsolete and unmanageable testparser.py and testfuncs.py. It verifies the complete optimizer output to stdout and stderr, to ensure that the output matches the expectations. See unit_tests/README.txt for more info.
This commit is contained in:
parent
7fbde0269c
commit
1867dc78e7
547 changed files with 11680 additions and 0 deletions
8
unit_tests/expr.suite/basic.lsl
Normal file
8
unit_tests/expr.suite/basic.lsl
Normal file
|
@ -0,0 +1,8 @@
|
|||
[ 1 + 1
|
||||
, (1 + 2) + llGetLinkNumber()
|
||||
, 1 + (2 + llGetLinkNumber())
|
||||
, 3 + (4 + llGetLinkNumber())
|
||||
, 3 * (4 * llGetLinkNumber()) // todo
|
||||
, "a" + "b"
|
||||
, "a" + ("b" + llGetObjectName())
|
||||
]
|
8
unit_tests/expr.suite/basic.out
Normal file
8
unit_tests/expr.suite/basic.out
Normal file
|
@ -0,0 +1,8 @@
|
|||
[ 2
|
||||
, 3 + llGetLinkNumber()
|
||||
, 3 + llGetLinkNumber()
|
||||
, 7 + llGetLinkNumber()
|
||||
, 3 * (4 * llGetLinkNumber())
|
||||
, "ab"
|
||||
, "ab" + llGetObjectName()
|
||||
]
|
134
unit_tests/expr.suite/casts.lsl
Normal file
134
unit_tests/expr.suite/casts.lsl
Normal file
|
@ -0,0 +1,134 @@
|
|||
[ (string)llDetectedKey(999)
|
||||
, (key)"xyz"
|
||||
, (integer)"3.14e+0a"
|
||||
, (integer)"a3.14e+0a"
|
||||
, (integer)"0XA3.14e+0a"
|
||||
, (integer)"3333333333333"
|
||||
, (integer)3333333333333.
|
||||
, (integer)"4124567890"
|
||||
, (integer)"-4124567890"
|
||||
, (integer)"-4294967296"
|
||||
, (integer)"-4294967295"
|
||||
, (integer)"-4294967294"
|
||||
, (integer)"4294967294"
|
||||
, (integer)"4294967295"
|
||||
, (integer)"4294967296"
|
||||
, (integer)" +12345 "
|
||||
, (integer)" ++12345 "
|
||||
, (integer)" +-12345 "
|
||||
, (integer)" + 12345 "
|
||||
, (integer)" - 12345 "
|
||||
, (integer)" -+12345 "
|
||||
, (integer)" --12345 "
|
||||
, (integer)" -12345 "
|
||||
, (float)"3.14e+0a"
|
||||
, (float)"+3.14e+0a"
|
||||
, (float)"++3.14e+0a"
|
||||
, (float)"-3.14e+0a"
|
||||
, (float)"--3.14e+0a"
|
||||
, (float)"0x3.14p+0a"
|
||||
, (float)"1.1754944e-38"
|
||||
, (float)"1.1754943e-38"
|
||||
, (float)"1.1754942e-38"
|
||||
, (float)"1.1754943157898258346e-38"
|
||||
, (float)"1.17549431578982583459e-38"
|
||||
// Known Mismatch:
|
||||
//, (float)"1.175494315789825834599e-38" // should give 0 but it fails
|
||||
, (vector)"<5.31,7.13,0x9.99"
|
||||
, (vector)"<5.31, 7.13, 0x9.99>"
|
||||
, (vector)"<5.31 , 7.13 , 0x9.99>"
|
||||
, (vector)"5.31, 7.13, 0x9.99>"
|
||||
, (vector)"<5.31, a7.13, 0x9.99>"
|
||||
, (vector)"<1,1,2+"
|
||||
, (vector)"<1,1,2a"
|
||||
, (vector)"<1,1,inf"
|
||||
, (vector)"<1,1,info"
|
||||
, (vector)"<1,1,infi"
|
||||
, (vector)"<1,1,infix"
|
||||
, (vector)"<1,1,infinite"
|
||||
, (vector)"<1,1,iNfInItY"
|
||||
, (vector)"<1,1,infinitys"
|
||||
, (vector)"<1,1,infinities"
|
||||
, (vector)"<inf,1,1>"
|
||||
, (vector)"<infinity,1,1>"
|
||||
, (vector)"<infini,1,1>"
|
||||
, (vector)"<infinite,1,1>"
|
||||
, (quaternion)"<-nan,nan,-nan,nan>"
|
||||
, (string)-.5e-6
|
||||
, (string)((float)"-0x1.0C6F7Ap-21")
|
||||
, (string).5e-6
|
||||
, (string)((float)"-0x1.0C6F78p-21")
|
||||
, (string)((float)"0x1.0C6F78p-21")
|
||||
, (string)<.5e-5,-.5e-5,(float)"-0x1.4F8B58p-18">
|
||||
, (string)<(float)"0x1.4F8B58p-18",(float)"-0x1.4F8B56p-18",(float)"0x1.4F8B56p-18">
|
||||
, (string)-123456789.
|
||||
, (string)-123456784.
|
||||
, (string)-123456740.
|
||||
, (string)-12345.674
|
||||
, (string)-1.2345674
|
||||
, (string)-1.2345675
|
||||
, (string)<-123456740., -12345.674, -1.2345674, -1.234564>
|
||||
, (string)[<-123456750., -12345.675, -12345.676>]
|
||||
, (string)<-123456750., -12345.675, -12345.676, -12.345675>
|
||||
, (string)<1234567.5, 1234567.4, 123456.75, 123456.74>
|
||||
, (string)[<1234567.5, 1234567.4, 0.>]
|
||||
, (string)<12345675., 12345674., 9.999999>
|
||||
, (string)1e-7
|
||||
, (string)1e-6
|
||||
, (string)1e-5
|
||||
, (string)1e-4
|
||||
, (string)1e-3
|
||||
, (string)1e-2
|
||||
, (string)1e-1
|
||||
, (string)1e0
|
||||
, (string)1e1
|
||||
, (string)1e2
|
||||
, (string)1e3
|
||||
, (string)1e4
|
||||
, (string)1e5
|
||||
, (string)1e6
|
||||
, (string)1e7
|
||||
, (string)1e8
|
||||
, (string)1e9
|
||||
, (string)1e10
|
||||
, (string)1e11
|
||||
, (string)1e12
|
||||
, (string)1e13
|
||||
, (string)1e14
|
||||
, (string)1e15
|
||||
, (string)1e16
|
||||
, (string)1e17
|
||||
, (string)1e18
|
||||
, (string)1e19
|
||||
, (string)1e20
|
||||
, (string)1e21
|
||||
, (string)1e22
|
||||
, (string)1e23
|
||||
, (string)1e24
|
||||
, (string)1e25
|
||||
, (string)1e26
|
||||
, (string)1e27
|
||||
, (string)1e28
|
||||
, (string)1e29
|
||||
, (string)1e30
|
||||
, (string)1e31
|
||||
, (string)1e32
|
||||
, (string)1e33
|
||||
, (string)1e34
|
||||
, (string)1e35
|
||||
, (string)1e36
|
||||
, (string)1e37
|
||||
, (string)1e38
|
||||
, (string)1e39
|
||||
, (string)-1e39
|
||||
, (string)(1e39*0)
|
||||
, llList2CSV([1e0,1e1,1e2,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13,1e14,
|
||||
1e15,1e16,1e17,1e18,1e19,1e20,1e21,1e22,1e23,1e24,1e25,1e26,1e27,
|
||||
1e28,1e29,1e30,1e31,1e32,1e33,1e34,1e35,1e36,1e37,1e38])
|
||||
, llList2CSV((list)<(float)"NaN", 1e40*0, 1e40, -1e40>)
|
||||
, llList2CSV((list)"str")
|
||||
, (string)[1,3.14,(key)"blah",<1.,0.,0.,0.>]
|
||||
, llSin(-2147483648)
|
||||
, llSin(2147483647)
|
||||
, llSin(2147483647.0)
|
||||
]
|
130
unit_tests/expr.suite/casts.out
Normal file
130
unit_tests/expr.suite/casts.out
Normal file
|
@ -0,0 +1,130 @@
|
|||
[ "00000000-0000-0000-0000-000000000000"
|
||||
, ((key)"xyz")
|
||||
, 3
|
||||
, 0
|
||||
, 163
|
||||
, -1
|
||||
, -2147483648
|
||||
, -170399406
|
||||
, 170399406
|
||||
, -1
|
||||
, 1
|
||||
, 2
|
||||
, -2
|
||||
, -1
|
||||
, -1
|
||||
, 12345
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, -12345
|
||||
, 3.14
|
||||
, 3.14
|
||||
, 0.
|
||||
, -3.14
|
||||
, 0.
|
||||
, 3.078125
|
||||
, 1.1754943e-38
|
||||
, 0.
|
||||
, 0.
|
||||
, 1.1754943e-38
|
||||
, 0.
|
||||
, <5.31, 7.13, 9.597656>
|
||||
, <5.31, 7.13, 9.597656>
|
||||
, <0., 0., 0.>
|
||||
, <0., 0., 0.>
|
||||
, <0., 0., 0.>
|
||||
, <1., 1., 2.>
|
||||
, <1., 1., 2.>
|
||||
, <1., 1., 1e40>
|
||||
, <1., 1., 1e40>
|
||||
, <0., 0., 0.>
|
||||
, <0., 0., 0.>
|
||||
, <0., 0., 0.>
|
||||
, <1., 1., 1e40>
|
||||
, <1., 1., 1e40>
|
||||
, <0., 0., 0.>
|
||||
, <1e40, 1., 1.>
|
||||
, <1e40, 1., 1.>
|
||||
, <0., 0., 0.>
|
||||
, <0., 0., 0.>
|
||||
, <(1e40*0), (-1e40*0), (1e40*0), (-1e40*0)>
|
||||
, "-0.000001"
|
||||
, "-0.000001"
|
||||
, "0.000001"
|
||||
, "0.000000"
|
||||
, "0.000000"
|
||||
, "<0.00001, -0.00001, -0.00001>"
|
||||
, "<0.00001, 0.00000, 0.00000>"
|
||||
, "-123456800.000000"
|
||||
, "-123456800.000000"
|
||||
, "-123456700.000000"
|
||||
, "-12345.670000"
|
||||
, "-1.234567"
|
||||
, "-1.234568"
|
||||
, "<-123456700.00000, -12345.67000, -1.23457, -1.23456>"
|
||||
, "<-123456800.000000, -12345.670000, -12345.680000>"
|
||||
, "<-123456800.00000, -12345.67000, -12345.68000, -12.34568>"
|
||||
, "<1234568.00000, 1234567.00000, 123456.80000, 123456.70000>"
|
||||
, "<1234568.000000, 1234567.000000, 0.000000>"
|
||||
, "<12345680.00000, 12345670.00000, 10.00000>"
|
||||
, "0.000000"
|
||||
, "0.000001"
|
||||
, "0.000010"
|
||||
, "0.000100"
|
||||
, "0.001000"
|
||||
, "0.010000"
|
||||
, "0.100000"
|
||||
, "1.000000"
|
||||
, "10.000000"
|
||||
, "100.000000"
|
||||
, "1000.000000"
|
||||
, "10000.000000"
|
||||
, "100000.000000"
|
||||
, "1000000.000000"
|
||||
, "10000000.000000"
|
||||
, "100000000.000000"
|
||||
, "1000000000.000000"
|
||||
, "10000000000.000000"
|
||||
, "100000000000.000000"
|
||||
, "1000000000000.000000"
|
||||
, "10000000000000.000000"
|
||||
, "100000000000000.000000"
|
||||
, "1000000000000000.000000"
|
||||
, "10000000000000000.000000"
|
||||
, "100000000000000000.000000"
|
||||
, "1000000000000000000.000000"
|
||||
, "10000000000000000000.000000"
|
||||
, "100000000000000000000.000000"
|
||||
, "1000000000000000000000.000000"
|
||||
, "10000000000000000000000.000000"
|
||||
, "100000000000000000000000.000000"
|
||||
, "1000000000000000000000000.000000"
|
||||
, "10000000000000000000000000.000000"
|
||||
, "100000000000000000000000000.000000"
|
||||
, "1000000000000000000000000000.000000"
|
||||
, "9999999000000000000000000000.000000"
|
||||
, "100000000000000000000000000000.000000"
|
||||
, "1000000000000000000000000000000.000000"
|
||||
, "10000000000000000000000000000000.000000"
|
||||
, "100000000000000000000000000000000.000000"
|
||||
, "1000000000000000000000000000000000.000000"
|
||||
, "10000000000000000000000000000000000.000000"
|
||||
, "100000000000000000000000000000000000.000000"
|
||||
, "1000000000000000000000000000000000000.000000"
|
||||
, "10000000000000000000000000000000000000.000000"
|
||||
, "100000000000000000000000000000000000000.000000"
|
||||
, "Infinity"
|
||||
, "-Infinity"
|
||||
, "NaN"
|
||||
, "1.000000, 10.000000, 100.000000, 1000.000000, 10000.000000, 100000.000000, 1000000.000000, 10000000.000000, 100000000.000000, 1000000000.000000, 10000000000.000000, 99999997952.000000, 999999995904.000000, 9999999827968.000000, 100000000376832.000000, 999999986991104.000000, 10000000272564224.000000, 99999998430674944.000000, 999999984306749440.000000, 9999999980506447872.000000, 100000002004087734272.000000, 1000000020040877342720.000000, 9999999778196308361216.000000, 99999997781963083612160.000000, 1000000013848427855085568.000000, 9999999562023526247432192.000000, 100000002537764290115403776.000000, 999999988484154753734934528.000000, 9999999442119689768320106496.000000, 100000001504746621987668885504.000000, 1000000015047466219876688855040.000000, 9999999848243207295109594873856.000000, 100000003318135351409612647563264.000000, 999999994495727286427992885035008.000000, 9999999790214767953607394487959552.000000, 100000004091847875962975319375216640.000000, 999999961690316245365415600208216064.000000, 9999999933815812510711506376257961984.000000, 99999996802856924650656260769173209088.000000"
|
||||
, "<nan, -nan, inf, -inf>"
|
||||
, "str"
|
||||
, "13.140000blah<1.000000, 0.000000, 0.000000, 0.000000>"
|
||||
, 0.9713102
|
||||
, -0.9713102
|
||||
, -0.9713102
|
||||
]
|
34
unit_tests/expr.suite/experience-emsg.lsl
Normal file
34
unit_tests/expr.suite/experience-emsg.lsl
Normal file
|
@ -0,0 +1,34 @@
|
|||
[ llGetExperienceErrorMessage(-2)
|
||||
, llGetExperienceErrorMessage(-1)
|
||||
, llGetExperienceErrorMessage( 0)
|
||||
, llGetExperienceErrorMessage( 1)
|
||||
, llGetExperienceErrorMessage( 2)
|
||||
, llGetExperienceErrorMessage( 3)
|
||||
, llGetExperienceErrorMessage( 4)
|
||||
, llGetExperienceErrorMessage( 5)
|
||||
, llGetExperienceErrorMessage( 6)
|
||||
, llGetExperienceErrorMessage( 7)
|
||||
, llGetExperienceErrorMessage( 8)
|
||||
, llGetExperienceErrorMessage( 9)
|
||||
, llGetExperienceErrorMessage(10)
|
||||
, llGetExperienceErrorMessage(11)
|
||||
, llGetExperienceErrorMessage(12)
|
||||
, llGetExperienceErrorMessage(13)
|
||||
, llGetExperienceErrorMessage(14)
|
||||
, llGetExperienceErrorMessage(15)
|
||||
, llGetExperienceErrorMessage(16)
|
||||
, llGetExperienceErrorMessage(17)
|
||||
, llGetExperienceErrorMessage(18)
|
||||
, llGetExperienceErrorMessage(19)
|
||||
, llGetExperienceErrorMessage(20)
|
||||
, llGetExperienceErrorMessage(21)
|
||||
, llGetExperienceErrorMessage(22)
|
||||
, llGetExperienceErrorMessage(23)
|
||||
, llGetExperienceErrorMessage(24)
|
||||
, llGetExperienceErrorMessage(25)
|
||||
, llGetExperienceErrorMessage(26)
|
||||
, llGetExperienceErrorMessage(27)
|
||||
, llGetExperienceErrorMessage(28)
|
||||
, llGetExperienceErrorMessage(29)
|
||||
, llGetExperienceErrorMessage(30)
|
||||
]
|
34
unit_tests/expr.suite/experience-emsg.out
Normal file
34
unit_tests/expr.suite/experience-emsg.out
Normal file
|
@ -0,0 +1,34 @@
|
|||
[ "unknown error id"
|
||||
, "unknown error id"
|
||||
, "no error"
|
||||
, "exceeded throttle"
|
||||
, "experiences are disabled"
|
||||
, "invalid parameters"
|
||||
, "operation not permitted"
|
||||
, "script not associated with an experience"
|
||||
, "not found"
|
||||
, "invalid experience"
|
||||
, "experience is disabled"
|
||||
, "experience is suspended"
|
||||
, "unknown error"
|
||||
, "experience data quota exceeded"
|
||||
, "key-value store is disabled"
|
||||
, "key-value store communication failed"
|
||||
, "key doesn't exist"
|
||||
, "retry update"
|
||||
, "experience content rating too high"
|
||||
, "not allowed to run in current location"
|
||||
, "experience permissions request timed out"
|
||||
, "unknown error id"
|
||||
, "unknown error id"
|
||||
, "unknown error id"
|
||||
, "unknown error id"
|
||||
, "unknown error id"
|
||||
, "unknown error id"
|
||||
, "unknown error id"
|
||||
, "unknown error id"
|
||||
, "unknown error id"
|
||||
, "unknown error id"
|
||||
, "unknown error id"
|
||||
, "unknown error id"
|
||||
]
|
19
unit_tests/expr.suite/i-to-b64-to-i.lsl
Normal file
19
unit_tests/expr.suite/i-to-b64-to-i.lsl
Normal file
|
@ -0,0 +1,19 @@
|
|||
[ llIntegerToBase64(-680658713)
|
||||
, llIntegerToBase64(-1)
|
||||
, llIntegerToBase64(0)
|
||||
, llIntegerToBase64(1)
|
||||
, llIntegerToBase64(2)
|
||||
, llIntegerToBase64(3)
|
||||
, llIntegerToBase64(-2147483648)
|
||||
, llIntegerToBase64(2147483647)
|
||||
|
||||
, llBase64ToInteger("123456789")
|
||||
, llBase64ToInteger("12345A===")
|
||||
, llBase64ToInteger("12345678")
|
||||
, llBase64ToInteger("123456")
|
||||
, llBase64ToInteger("123456==")
|
||||
, llBase64ToInteger("12345w==")
|
||||
, llBase64ToInteger("12345.")
|
||||
, llBase64ToInteger("gAAAAA")
|
||||
, llBase64ToInteger("/////w")
|
||||
]
|
18
unit_tests/expr.suite/i-to-b64-to-i.out
Normal file
18
unit_tests/expr.suite/i-to-b64-to-i.out
Normal file
|
@ -0,0 +1,18 @@
|
|||
[ "12345w=="
|
||||
, "/////w=="
|
||||
, "AAAAAA=="
|
||||
, "AAAAAQ=="
|
||||
, "AAAAAg=="
|
||||
, "AAAAAw=="
|
||||
, "gAAAAA=="
|
||||
, "f////w=="
|
||||
, 0
|
||||
, 0
|
||||
, -680658713
|
||||
, -680658713
|
||||
, -680658713
|
||||
, -680658713
|
||||
, -680658944
|
||||
, -2147483648
|
||||
, -1
|
||||
]
|
44
unit_tests/expr.suite/list-extraction.lsl
Normal file
44
unit_tests/expr.suite/list-extraction.lsl
Normal file
|
@ -0,0 +1,44 @@
|
|||
[ llList2Key([], 0)
|
||||
, llList2Key([""], 1)
|
||||
, llList2Key([(key)"a"], 0)
|
||||
, llList2Key([2], 0)
|
||||
, llList2Key([llGetKey(), "x"], 1) // this generates LIST, not CONST
|
||||
, llList2Key([llGetKey(), "x"], 0)
|
||||
, llList2Key([llSetRegionPos(<1,1,1>), "x"], 1) // not SEF
|
||||
, llList2Key([<1,0,0>],-1)
|
||||
, llList2Float([1], 0)
|
||||
, llList2Float([1], 1)
|
||||
, llList2Float([1.], 0)
|
||||
, llList2Float([PI_BY_TWO], -1)
|
||||
, llList2Float(["3"], 0)
|
||||
, llList2Float([(key)"3"], 0)
|
||||
, llList2Float([], 0)
|
||||
, llList2Integer([1], 0)
|
||||
, llList2Integer([1], 1)
|
||||
, llList2Integer([1.], 0)
|
||||
, llList2Integer([PI_BY_TWO], -1)
|
||||
, llList2Integer(["3"], 0)
|
||||
, llList2Integer([(key)"3"], 0)
|
||||
, llList2Integer([], 0)
|
||||
, llList2Vector([<1,2,3>], 0)
|
||||
, llList2Vector([<1,2,3>], -1)
|
||||
, llList2Vector([<1,2,3>], 2)
|
||||
, llList2Vector([<1,2,3,4>], 0)
|
||||
, llList2Vector(["abc"], 0)
|
||||
, llList2Vector(["<1,2,3>"], 0)
|
||||
, llList2Vector([], 0)
|
||||
, llList2Rot([<1,2,3,4>], 0)
|
||||
, llList2Rot([<1,2,3,4>], -1)
|
||||
, llList2Rot([<1,2,3,4>], 2)
|
||||
, llList2Rot([<1,2,3>], 0)
|
||||
, llList2Rot(["abc"], 0)
|
||||
, llList2Rot(["<1,2,3,4>"], 0)
|
||||
, llList2Rot([], 0)
|
||||
, llList2String(["a", (key)"b", 1, PI, <1,2,3>, <1,2,3,4>], 0)
|
||||
, llList2String(["a", (key)"b", 1, PI, <1,2,3>, <1,2,3,4>], -1)
|
||||
, llList2String(["a", (key)"b", 1, PI, <1,2,3>, <1,2,3,4>], 1)
|
||||
, llList2String(["a", (key)"b", 1, PI, <1,2,3>, <1,2,3,4>], -2)
|
||||
, llList2String(["a", (key)"b", 1, PI, <1,2,3>, <1,2,3,4>], 2)
|
||||
, llList2String(["a", (key)"b", 1, PI, <1,2,3>, <1,2,3,4>], -3)
|
||||
, llList2String([], -3)
|
||||
]
|
44
unit_tests/expr.suite/list-extraction.out
Normal file
44
unit_tests/expr.suite/list-extraction.out
Normal file
|
@ -0,0 +1,44 @@
|
|||
[ ((key)"")
|
||||
, ((key)"")
|
||||
, ((key)"a")
|
||||
, ((key)"")
|
||||
, ((key)"x")
|
||||
, llList2Key([llGetKey(), "x"], 0)
|
||||
, llList2Key([llSetRegionPos(<1., 1., 1.>), "x"], 1)
|
||||
, ((key)"")
|
||||
, 1.
|
||||
, 0.
|
||||
, 1.
|
||||
, 1.5707964
|
||||
, 3.
|
||||
, 0.
|
||||
, 0.
|
||||
, 1
|
||||
, 0
|
||||
, 1
|
||||
, 1
|
||||
, 3
|
||||
, 0
|
||||
, 0
|
||||
, <1., 2., 3.>
|
||||
, <1., 2., 3.>
|
||||
, <0., 0., 0.>
|
||||
, <0., 0., 0.>
|
||||
, <0., 0., 0.>
|
||||
, <0., 0., 0.>
|
||||
, <0., 0., 0.>
|
||||
, <1., 2., 3., 4.>
|
||||
, <1., 2., 3., 4.>
|
||||
, <0., 0., 0., 1.>
|
||||
, <0., 0., 0., 1.>
|
||||
, <0., 0., 0., 1.>
|
||||
, <0., 0., 0., 1.>
|
||||
, <0., 0., 0., 1.>
|
||||
, "a"
|
||||
, "<1.000000, 2.000000, 3.000000, 4.000000>"
|
||||
, "b"
|
||||
, "<1.000000, 2.000000, 3.000000>"
|
||||
, "1"
|
||||
, "3.141593"
|
||||
, ""
|
||||
]
|
138
unit_tests/expr.suite/list-funcs-1.lsl
Normal file
138
unit_tests/expr.suite/list-funcs-1.lsl
Normal file
|
@ -0,0 +1,138 @@
|
|||
llListInsertList([1,2,3],[4,5],-1)
|
||||
+ "********"
|
||||
+ llListInsertList([1,2,3],[4,5],-5)
|
||||
+ "********"
|
||||
+ llListInsertList([], [1], 0)
|
||||
+ "********"
|
||||
+ llListInsertList([], [1], 3)
|
||||
+ "********"
|
||||
+ llListInsertList([], [1], -1)
|
||||
+ "********"
|
||||
+ llListInsertList([1,2,3,4,5],[9],-3)
|
||||
+ "********"
|
||||
|
||||
+ llList2ListStrided([1,2,3,4,5],0,-1,2)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5],1,-1,2)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5],0,-2,2)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],0,-4,3)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],0,-3,3)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],0,-1,3)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],-3,3,3)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],-2,-3,3)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],-2,-2,3)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],-2,-1,3)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],4,3,3)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],4,4,3)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],4,5,3)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],5,5,3)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],5,6,3)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],6,5,3)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],6,6,3)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],6,2,-3)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],6,2,-2)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],6,2,-1)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],6,2,0)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],6,2,1)
|
||||
+ "********"
|
||||
+ llList2ListStrided([1,2,3,4,5,6,7,8,9,10,11,12],6,20,3)
|
||||
+ "********"
|
||||
|
||||
+ llListReplaceList([0,1,2,3,4,5],[6,7],2,3)
|
||||
+ "********"
|
||||
+ llListReplaceList([0,1,2,3,4,5],[],2,3)
|
||||
+ "********"
|
||||
+ llListReplaceList([0,1,2,3,4,5],[6,7],2,3)
|
||||
+ "********"
|
||||
+ llListReplaceList([0,1,2,3,4,5],[6,7],2,-1)
|
||||
+ "********"
|
||||
+ llListReplaceList([0,1,2,3,4,5],[],4,1)
|
||||
+ "********"
|
||||
+ llListReplaceList([0,1,2,3,4,5],[6,7,8],4,1)
|
||||
+ "********"
|
||||
+ llListReplaceList([0,1,2,3,4,5],[6,7,8],6,6)
|
||||
+ "********"
|
||||
+ llListReplaceList([0,1,2,3,4,5],[6,7,8],7,6)
|
||||
+ "********"
|
||||
+ llListReplaceList([0,1,2,3,4,5],[6,7,8],7,8)
|
||||
+ "********"
|
||||
|
||||
+ llParseString2List("[ 1 ]2|3|4|5", ["|"], ["[ ", " ]"])
|
||||
+ "********"
|
||||
+ llParseString2List("[ 1 ]2|3|4|5", ["|"], ["|", "|"])
|
||||
+ "********"
|
||||
+ llParseString2List("1abc2ab3abc4",["ab","abc"],[])
|
||||
+ "********"
|
||||
+ llParseString2List("1abc2ab3abc4",["abc","ab"],[])
|
||||
+ "********"
|
||||
+ llParseString2List("1abc2ab3abc4",[""],[])
|
||||
+ "********"
|
||||
+ llParseString2List("1abc2ab3abc4",[],[""])
|
||||
+ "********"
|
||||
+ llParseString2List("1bab1", ["a", "bb"], [])
|
||||
+ "********"
|
||||
+ llParseString2List("1bab1", [], ["a", "bb"])
|
||||
+ "********"
|
||||
+ llParseStringKeepNulls("1abc2ab3abc4",["ab"],["abc"])
|
||||
+ "********"
|
||||
+ llParseStringKeepNulls("1abc2ab3abc4",["ab"],["a"])
|
||||
+ "********"
|
||||
+ llParseStringKeepNulls("1abc2ab3abc4",["ab"],["ab"])
|
||||
+ "********"
|
||||
+ llParseStringKeepNulls("1abc2ab3abc4",[""],[])
|
||||
+ "********"
|
||||
+ llParseStringKeepNulls("1abc2ab3abc4",[],[""])
|
||||
+ "********"
|
||||
+ llParseStringKeepNulls("1bab1", ["a", "bb"], [])
|
||||
+ "********"
|
||||
+ llParseStringKeepNulls("1bab1", [], ["a", "bb"])
|
||||
+ "********"
|
||||
+ llParseStringKeepNulls("",[],[])
|
||||
+ "********"
|
||||
+ llParseStringKeepNulls("",[],[""])
|
||||
+ "********"
|
||||
+ llParseStringKeepNulls("",[""],[])
|
||||
+ "********"
|
||||
+ llParseStringKeepNulls("",[""],[""])
|
||||
+ "********"
|
||||
+ llParseString2List("",[],[])
|
||||
+ "********"
|
||||
+ llParseString2List("",[],[""])
|
||||
+ "********"
|
||||
+ llParseString2List("",[""],[])
|
||||
+ "********"
|
||||
+ llParseString2List("",[""],[""])
|
||||
+ "********"
|
||||
+ llParseStringKeepNulls("a",[""],[])
|
||||
+ "********"
|
||||
+ llListReplaceList([0,1,2,3],[5],-5,-4)
|
||||
+ "********"
|
||||
+ llListReplaceList([0,1,2,3],[5],-5,-5)
|
||||
+ "********"
|
||||
+ llListReplaceList([0,1,2,3],[5],-5,-6)
|
||||
+ "********"
|
||||
+ llListReplaceList([0,1,2,3],[5],-5,-7)
|
||||
+ "********"
|
||||
+ llGetListLength([])
|
||||
+ llGetListLength([""])
|
||||
+ llGetListLength(["",""])
|
278
unit_tests/expr.suite/list-funcs-1.out
Normal file
278
unit_tests/expr.suite/list-funcs-1.out
Normal file
|
@ -0,0 +1,278 @@
|
|||
[ 1
|
||||
, 2
|
||||
, 4
|
||||
, 5
|
||||
, 3
|
||||
, "********"
|
||||
, 4
|
||||
, 5
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 1
|
||||
, "********"
|
||||
, 1
|
||||
, "********"
|
||||
, 1
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 9
|
||||
, 3
|
||||
, 4
|
||||
, 5
|
||||
, "********"
|
||||
, 1
|
||||
, 3
|
||||
, 5
|
||||
, "********"
|
||||
, 3
|
||||
, 5
|
||||
, "********"
|
||||
, 1
|
||||
, 3
|
||||
, "********"
|
||||
, 1
|
||||
, 4
|
||||
, 7
|
||||
, "********"
|
||||
, 1
|
||||
, 4
|
||||
, 7
|
||||
, 10
|
||||
, "********"
|
||||
, 1
|
||||
, 4
|
||||
, 7
|
||||
, 10
|
||||
, "********"
|
||||
, 1
|
||||
, 4
|
||||
, 7
|
||||
, 10
|
||||
, "********"
|
||||
, 1
|
||||
, 4
|
||||
, 7
|
||||
, 10
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, 1
|
||||
, 4
|
||||
, 7
|
||||
, 10
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, 7
|
||||
, "********"
|
||||
, 1
|
||||
, 4
|
||||
, 7
|
||||
, 10
|
||||
, "********"
|
||||
, 7
|
||||
, "********"
|
||||
, 1
|
||||
, 4
|
||||
, 7
|
||||
, 10
|
||||
, "********"
|
||||
, 1
|
||||
, 3
|
||||
, 5
|
||||
, 7
|
||||
, 9
|
||||
, 11
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, 5
|
||||
, 6
|
||||
, 7
|
||||
, 8
|
||||
, 9
|
||||
, 10
|
||||
, 11
|
||||
, 12
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, 5
|
||||
, 6
|
||||
, 7
|
||||
, 8
|
||||
, 9
|
||||
, 10
|
||||
, 11
|
||||
, 12
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, 5
|
||||
, 6
|
||||
, 7
|
||||
, 8
|
||||
, 9
|
||||
, 10
|
||||
, 11
|
||||
, 12
|
||||
, "********"
|
||||
, 7
|
||||
, 10
|
||||
, "********"
|
||||
, 0
|
||||
, 1
|
||||
, 6
|
||||
, 7
|
||||
, 4
|
||||
, 5
|
||||
, "********"
|
||||
, 0
|
||||
, 1
|
||||
, 4
|
||||
, 5
|
||||
, "********"
|
||||
, 0
|
||||
, 1
|
||||
, 6
|
||||
, 7
|
||||
, 4
|
||||
, 5
|
||||
, "********"
|
||||
, 0
|
||||
, 1
|
||||
, 6
|
||||
, 7
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, 6
|
||||
, 7
|
||||
, 8
|
||||
, "********"
|
||||
, 0
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, 5
|
||||
, 6
|
||||
, 7
|
||||
, 8
|
||||
, "********"
|
||||
, 6
|
||||
, 7
|
||||
, 8
|
||||
, "********"
|
||||
, 0
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, 5
|
||||
, 6
|
||||
, 7
|
||||
, 8
|
||||
, "********"
|
||||
, "[ "
|
||||
, "1"
|
||||
, " ]"
|
||||
, "2"
|
||||
, "3"
|
||||
, "4"
|
||||
, "5"
|
||||
, "********"
|
||||
, "[ 1 ]2"
|
||||
, "3"
|
||||
, "4"
|
||||
, "5"
|
||||
, "********"
|
||||
, "1"
|
||||
, "c2"
|
||||
, "3"
|
||||
, "c4"
|
||||
, "********"
|
||||
, "1"
|
||||
, "2"
|
||||
, "3"
|
||||
, "4"
|
||||
, "********"
|
||||
, "1abc2ab3abc4"
|
||||
, "********"
|
||||
, "1abc2ab3abc4"
|
||||
, "********"
|
||||
, "1b"
|
||||
, "b1"
|
||||
, "********"
|
||||
, "1b"
|
||||
, "a"
|
||||
, "b1"
|
||||
, "********"
|
||||
, "1"
|
||||
, "c2"
|
||||
, "3"
|
||||
, "c4"
|
||||
, "********"
|
||||
, "1"
|
||||
, "c2"
|
||||
, "3"
|
||||
, "c4"
|
||||
, "********"
|
||||
, "1"
|
||||
, "c2"
|
||||
, "3"
|
||||
, "c4"
|
||||
, "********"
|
||||
, "1abc2ab3abc4"
|
||||
, "********"
|
||||
, "1abc2ab3abc4"
|
||||
, "********"
|
||||
, "1b"
|
||||
, "b1"
|
||||
, "********"
|
||||
, "1b"
|
||||
, "a"
|
||||
, "b1"
|
||||
, "********"
|
||||
, ""
|
||||
, "********"
|
||||
, ""
|
||||
, "********"
|
||||
, ""
|
||||
, "********"
|
||||
, ""
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, "a"
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 0
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, 0
|
||||
, 1
|
||||
, 2
|
||||
]
|
169
unit_tests/expr.suite/list-funcs-2.lsl
Normal file
169
unit_tests/expr.suite/list-funcs-2.lsl
Normal file
|
@ -0,0 +1,169 @@
|
|||
llDeleteSubList([1,2,3,4], -9, -9)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -9, -5)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -9, -4)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -9, -3)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -9, -2)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -9, -1)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -9, 0)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -9, 3)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -9, 4)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -9, 7)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -9, 8)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -9, 9)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -5, -9)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -5, -5)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -5, -4)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -5, -3)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -5, -1)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -5, 0)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -5, 3)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -5, 4)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -5, 7)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -5, 8)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -4, -5)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -4, -4)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -4, -1)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -4, 0)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -4, 3)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -4, 4)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -4, 8)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -2, -5)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -2, -4)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -2, -3)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -2, -2)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -2, -1)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -2, 0)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -2, 1)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -2, 2)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -2, 3)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -2, 4)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -2, 5)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -1, -5)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -1, -4)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -1, -3)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -1, -2)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -1, -1)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -1, 0)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -1, 1)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -1, 2)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -1, 3)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -1, 4)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], -1, 5)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 0, -9)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 0, -5)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 0, -4)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 0, -1)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 0, 0)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 0, 3)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 0, 5)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 3, -5)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 3, -4)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 3, -1)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 3, 0)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 3, 2)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 3, 3)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 3, 4)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 3, 5)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 4, -9)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 4, -5)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 4, -4)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 4, -1)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 4, 0)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 4, 2)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 4, 3)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 4, 4)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 4, 5)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 9, -9)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 9, -5)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 9, -4)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 9, -1)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 9, 0)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 9, 2)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 9, 3)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 9, 4)
|
||||
+ "********"
|
||||
+ llDeleteSubList([1,2,3,4], 9, 5)
|
||||
+ "********"
|
||||
+ llDeleteSubList([], 0, -1)
|
222
unit_tests/expr.suite/list-funcs-2.out
Normal file
222
unit_tests/expr.suite/list-funcs-2.out
Normal file
|
@ -0,0 +1,222 @@
|
|||
[ 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 4
|
||||
, "********"
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, "********"
|
||||
, 2
|
||||
, "********"
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, "********"
|
||||
, 2
|
||||
, "********"
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 3
|
||||
, "********"
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 3
|
||||
, "********"
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 4
|
||||
, "********"
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, "********"
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 4
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
]
|
85
unit_tests/expr.suite/list-funcs-3.lsl
Normal file
85
unit_tests/expr.suite/list-funcs-3.lsl
Normal file
|
@ -0,0 +1,85 @@
|
|||
llList2List([1,2,3,4], -9, -9)
|
||||
+ "********" + llList2List([1,2,3,4], -9, -5)
|
||||
+ "********" + llList2List([1,2,3,4], -9, -4)
|
||||
+ "********" + llList2List([1,2,3,4], -9, -3)
|
||||
+ "********" + llList2List([1,2,3,4], -9, -2)
|
||||
+ "********" + llList2List([1,2,3,4], -9, -1)
|
||||
+ "********" + llList2List([1,2,3,4], -9, 0)
|
||||
+ "********" + llList2List([1,2,3,4], -9, 3)
|
||||
+ "********" + llList2List([1,2,3,4], -9, 4)
|
||||
+ "********" + llList2List([1,2,3,4], -9, 7)
|
||||
+ "********" + llList2List([1,2,3,4], -9, 8)
|
||||
+ "********" + llList2List([1,2,3,4], -9, 9)
|
||||
+ "********" + llList2List([1,2,3,4], -5, -9)
|
||||
+ "********" + llList2List([1,2,3,4], -5, -5)
|
||||
+ "********" + llList2List([1,2,3,4], -5, -4)
|
||||
+ "********" + llList2List([1,2,3,4], -5, -3)
|
||||
+ "********" + llList2List([1,2,3,4], -5, -1)
|
||||
+ "********" + llList2List([1,2,3,4], -5, 0)
|
||||
+ "********" + llList2List([1,2,3,4], -5, 3)
|
||||
+ "********" + llList2List([1,2,3,4], -5, 4)
|
||||
+ "********" + llList2List([1,2,3,4], -5, 7)
|
||||
+ "********" + llList2List([1,2,3,4], -5, 8)
|
||||
+ "********" + llList2List([1,2,3,4], -4, -5)
|
||||
+ "********" + llList2List([1,2,3,4], -4, -4)
|
||||
+ "********" + llList2List([1,2,3,4], -4, -1)
|
||||
+ "********" + llList2List([1,2,3,4], -4, 0)
|
||||
+ "********" + llList2List([1,2,3,4], -4, 3)
|
||||
+ "********" + llList2List([1,2,3,4], -4, 4)
|
||||
+ "********" + llList2List([1,2,3,4], -4, 8)
|
||||
+ "********" + llList2List([1,2,3,4], -2, -5)
|
||||
+ "********" + llList2List([1,2,3,4], -2, -4)
|
||||
+ "********" + llList2List([1,2,3,4], -2, -3)
|
||||
+ "********" + llList2List([1,2,3,4], -2, -2)
|
||||
+ "********" + llList2List([1,2,3,4], -2, -1)
|
||||
+ "********" + llList2List([1,2,3,4], -2, 0)
|
||||
+ "********" + llList2List([1,2,3,4], -2, 1)
|
||||
+ "********" + llList2List([1,2,3,4], -2, 2)
|
||||
+ "********" + llList2List([1,2,3,4], -2, 3)
|
||||
+ "********" + llList2List([1,2,3,4], -2, 4)
|
||||
+ "********" + llList2List([1,2,3,4], -2, 5)
|
||||
+ "********" + llList2List([1,2,3,4], -1, -5)
|
||||
+ "********" + llList2List([1,2,3,4], -1, -4)
|
||||
+ "********" + llList2List([1,2,3,4], -1, -3)
|
||||
+ "********" + llList2List([1,2,3,4], -1, -2)
|
||||
+ "********" + llList2List([1,2,3,4], -1, -1)
|
||||
+ "********" + llList2List([1,2,3,4], -1, 0)
|
||||
+ "********" + llList2List([1,2,3,4], -1, 1)
|
||||
+ "********" + llList2List([1,2,3,4], -1, 2)
|
||||
+ "********" + llList2List([1,2,3,4], -1, 3)
|
||||
+ "********" + llList2List([1,2,3,4], -1, 4)
|
||||
+ "********" + llList2List([1,2,3,4], -1, 5)
|
||||
+ "********" + llList2List([1,2,3,4], 0, -9)
|
||||
+ "********" + llList2List([1,2,3,4], 0, -5)
|
||||
+ "********" + llList2List([1,2,3,4], 0, -4)
|
||||
+ "********" + llList2List([1,2,3,4], 0, -1)
|
||||
+ "********" + llList2List([1,2,3,4], 0, 0)
|
||||
+ "********" + llList2List([1,2,3,4], 0, 3)
|
||||
+ "********" + llList2List([1,2,3,4], 0, 5)
|
||||
+ "********" + llList2List([1,2,3,4], 3, -5)
|
||||
+ "********" + llList2List([1,2,3,4], 3, -4)
|
||||
+ "********" + llList2List([1,2,3,4], 3, -1)
|
||||
+ "********" + llList2List([1,2,3,4], 3, 0)
|
||||
+ "********" + llList2List([1,2,3,4], 3, 2)
|
||||
+ "********" + llList2List([1,2,3,4], 3, 3)
|
||||
+ "********" + llList2List([1,2,3,4], 3, 4)
|
||||
+ "********" + llList2List([1,2,3,4], 3, 5)
|
||||
+ "********" + llList2List([1,2,3,4], 4, -9)
|
||||
+ "********" + llList2List([1,2,3,4], 4, -5)
|
||||
+ "********" + llList2List([1,2,3,4], 4, -4)
|
||||
+ "********" + llList2List([1,2,3,4], 4, -1)
|
||||
+ "********" + llList2List([1,2,3,4], 4, 0)
|
||||
+ "********" + llList2List([1,2,3,4], 4, 2)
|
||||
+ "********" + llList2List([1,2,3,4], 4, 3)
|
||||
+ "********" + llList2List([1,2,3,4], 4, 4)
|
||||
+ "********" + llList2List([1,2,3,4], 4, 5)
|
||||
+ "********" + llList2List([1,2,3,4], 9, -9)
|
||||
+ "********" + llList2List([1,2,3,4], 9, -5)
|
||||
+ "********" + llList2List([1,2,3,4], 9, -4)
|
||||
+ "********" + llList2List([1,2,3,4], 9, -1)
|
||||
+ "********" + llList2List([1,2,3,4], 9, 0)
|
||||
+ "********" + llList2List([1,2,3,4], 9, 2)
|
||||
+ "********" + llList2List([1,2,3,4], 9, 3)
|
||||
+ "********" + llList2List([1,2,3,4], 9, 4)
|
||||
+ "********" + llList2List([1,2,3,4], 9, 5)
|
||||
+ "********" + llList2List([], 0, -1)
|
284
unit_tests/expr.suite/list-funcs-3.out
Normal file
284
unit_tests/expr.suite/list-funcs-3.out
Normal file
|
@ -0,0 +1,284 @@
|
|||
[ "********"
|
||||
, "********"
|
||||
, 1
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, "********"
|
||||
, 1
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 3
|
||||
, "********"
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 3
|
||||
, "********"
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 4
|
||||
, "********"
|
||||
, 4
|
||||
, "********"
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 4
|
||||
, "********"
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 4
|
||||
, "********"
|
||||
, 4
|
||||
, "********"
|
||||
, 4
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, 1
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, "********"
|
||||
, 1
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, "********"
|
||||
]
|
8
unit_tests/expr.suite/lldeletesublist-empty.lsl
Normal file
8
unit_tests/expr.suite/lldeletesublist-empty.lsl
Normal file
|
@ -0,0 +1,8 @@
|
|||
[ llGetListLength(llDeleteSubList([llSetRegionPos(<0,0,0>)], 0, -1))
|
||||
, llGetListLength(llListReplaceList([llSetRegionPos(<0,0,0>)], [], 0, -1))
|
||||
, llGetListLength(llDeleteSubList(llGetLinkPrimitiveParams(LINK_THIS,[1,2,3]), 0, -1))
|
||||
, llGetListLength(llListReplaceList(
|
||||
llGetLinkPrimitiveParams(LINK_THIS,[1,2,3]), [], 0, -1
|
||||
))
|
||||
, llGetListLength(llDeleteSubList(llGetLinkPrimitiveParams(LINK_THIS,[1,2,3]), 0, -2))
|
||||
]
|
6
unit_tests/expr.suite/lldeletesublist-empty.out
Normal file
6
unit_tests/expr.suite/lldeletesublist-empty.out
Normal file
|
@ -0,0 +1,6 @@
|
|||
[ llGetListLength(llDeleteSubList((list)llSetRegionPos(<0., 0., 0.>), 0, -1))
|
||||
, llGetListLength(llListReplaceList((list)llSetRegionPos(<0., 0., 0.>), [], 0, -1))
|
||||
, 0
|
||||
, 0
|
||||
, llGetListLength(llDeleteSubList(llGetLinkPrimitiveParams(-4, [1, 2, 3]), 0, -2))
|
||||
]
|
1
unit_tests/expr.suite/llescapeurl.lsl
Normal file
1
unit_tests/expr.suite/llescapeurl.lsl
Normal file
|
@ -0,0 +1 @@
|
|||
llEscapeURL("" + llUnescapeURL("%09") + "\n" + llUnescapeURL("%0D") + "" + llUnescapeURL("%1A") + " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~
¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀ")
|
1
unit_tests/expr.suite/llescapeurl.out
Normal file
1
unit_tests/expr.suite/llescapeurl.out
Normal file
|
@ -0,0 +1 @@
|
|||
"%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%20%21%22%23%24%25%26%27%28%29%2A%2B%2C%2D%2E%2F0123456789%3A%3B%3C%3D%3E%3F%40ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E%5F%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D%7E%7F%C2%80%C2%81%C2%82%C2%83%C2%84%C2%85%C2%86%C2%87%C2%88%C2%89%C2%8A%C2%8B%C2%8C%C2%8D%C2%8E%C2%8F%C2%90%C2%91%C2%92%C2%93%C2%94%C2%95%C2%96%C2%97%C2%98%C2%99%C2%9A%C2%9B%C2%9C%C2%9D%C2%9E%C2%9F%C2%A0%C2%A1%C2%A2%C2%A3%C2%A4%C2%A5%C2%A6%C2%A7%C2%A8%C2%A9%C2%AA%C2%AB%C2%AC%C2%AD%C2%AE%C2%AF%C2%B0%C2%B1%C2%B2%C2%B3%C2%B4%C2%B5%C2%B6%C2%B7%C2%B8%C2%B9%C2%BA%C2%BB%C2%BC%C2%BD%C2%BE%C2%BF%C3%80%C3%81%C3%82%C3%83%C3%84%C3%85%C3%86%C3%87%C3%88%C3%89%C3%8A%C3%8B%C3%8C%C3%8D%C3%8E%C3%8F%C3%90%C3%91%C3%92%C3%93%C3%94%C3%95%C3%96%C3%97%C3%98%C3%99%C3%9A%C3%9B%C3%9C%C3%9D%C3%9E%C3%9F%C3%A0%C3%A1%C3%A2%C3%A3%C3%A4%C3%A5%C3%A6%C3%A7%C3%A8%C3%A9%C3%AA%C3%AB%C3%AC%C3%AD%C3%AE%C3%AF%C3%B0%C3%B1%C3%B2%C3%B3%C3%B4%C3%B5%C3%B6%C3%B7%C3%B8%C3%B9%C3%BA%C3%BB%C3%BC%C3%BD%C3%BE%C3%BF%C4%80"
|
1
unit_tests/expr.suite/llescapeurl.run
Normal file
1
unit_tests/expr.suite/llescapeurl.run
Normal file
|
@ -0,0 +1 @@
|
|||
main.py -O clear,optimize,constfold,addstrings,foldtabs,expr -
|
31
unit_tests/expr.suite/llfrand-1.lsl
Normal file
31
unit_tests/expr.suite/llfrand-1.lsl
Normal file
|
@ -0,0 +1,31 @@
|
|||
[ llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
]
|
2
unit_tests/expr.suite/llfrand-1.out
Normal file
2
unit_tests/expr.suite/llfrand-1.out
Normal file
|
@ -0,0 +1,2 @@
|
|||
REGEX
|
||||
[[,] [0-9]{7}\.[0-9]*
|
31
unit_tests/expr.suite/llfrand-2.lsl
Normal file
31
unit_tests/expr.suite/llfrand-2.lsl
Normal file
|
@ -0,0 +1,31 @@
|
|||
[ llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
, llFrand(16777216)
|
||||
]
|
2
unit_tests/expr.suite/llfrand-2.out
Normal file
2
unit_tests/expr.suite/llfrand-2.out
Normal file
|
@ -0,0 +1,2 @@
|
|||
REGEX
|
||||
[[,] [0-9]{8}\.[0-9]*
|
1
unit_tests/expr.suite/llgeneratekey.lsl
Normal file
1
unit_tests/expr.suite/llgeneratekey.lsl
Normal file
|
@ -0,0 +1 @@
|
|||
llGenerateKey()
|
2
unit_tests/expr.suite/llgeneratekey.out
Normal file
2
unit_tests/expr.suite/llgeneratekey.out
Normal file
|
@ -0,0 +1,2 @@
|
|||
REGEX
|
||||
^\(\(key\)"[a-z0-9]{8}(?:-[a-z0-9]{4}){4}[a-z0-9]{8}"\)$
|
21
unit_tests/expr.suite/lllistfindlist.lsl
Normal file
21
unit_tests/expr.suite/lllistfindlist.lsl
Normal file
|
@ -0,0 +1,21 @@
|
|||
[ llListFindList([1e40*0], [1e40*0]) // finds it...
|
||||
, llListFindList([-1e40*0], [-1e40*0])
|
||||
, llListFindList([1e40*0, -1e40*0], [-1e40*0, 1e40*0])
|
||||
, llListFindList([-0.], [0.])
|
||||
, llListFindList([0.], [-0.])
|
||||
, llListFindList([1, 1e40*0, 1., 1e40*0], [1., 1e40*0])
|
||||
, llListFindList([1, 1e40*0, 1., 1e40*0], [2.])
|
||||
, llListFindList([<1e40*0,0.,0.>], [<1e40*0,0.,0.>]) // ... but this doesnt?!
|
||||
, llListFindList([<0.,0.,0.>], [<0.,0.,0.>])
|
||||
, llListFindList([<0.,0.,0.,1e40*0>], [<0.,0.,0.,1e40*0>])
|
||||
, llListFindList([<0.,0.,0.,-1e40*0>], [<0.,0.,0.,-1e40*0>])
|
||||
, llListFindList([(key)"12345678-ABCD-5678-1234-123456781234"],
|
||||
[(key)"12345678-abcd-5678-1234-123456781234"]) // case differs
|
||||
, llListFindList([(key)"12345678-abcd-5678-1234-123456781234"],
|
||||
[(key)"12345678-abcd-5678-1234-123456781234"]) // identical
|
||||
, llListFindList(["12345678-abcd-5678-1234-123456781234",
|
||||
(key)"12345678-abcd-5678-1234-123456781234"],
|
||||
[(key)"12345678-abcd-5678-1234-123456781234"])
|
||||
, llListFindList([], [""])
|
||||
]
|
||||
|
16
unit_tests/expr.suite/lllistfindlist.out
Normal file
16
unit_tests/expr.suite/lllistfindlist.out
Normal file
|
@ -0,0 +1,16 @@
|
|||
[ 0
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, 2
|
||||
, -1
|
||||
, -1
|
||||
, 0
|
||||
, -1
|
||||
, -1
|
||||
, -1
|
||||
, 0
|
||||
, 1
|
||||
, -1
|
||||
]
|
16
unit_tests/expr.suite/llliststatistics.lsl
Normal file
16
unit_tests/expr.suite/llliststatistics.lsl
Normal file
|
@ -0,0 +1,16 @@
|
|||
[ llListStatistics(1, [])
|
||||
, llListStatistics(0, [1.,5.,2,3,9,-1])
|
||||
, llListStatistics(1, [1.,5.,-2,3,9,-1])
|
||||
, llListStatistics(2, [1.,5.,2,3,9,-1])
|
||||
, llListStatistics(3, [1.,5.,2,3,9,-1])
|
||||
, llListStatistics(4, [1.,5.,2,3,9,-1])
|
||||
, llListStatistics(4, [1.,5.,1e40*0,2,3,9,-1])
|
||||
, llListStatistics(5, [1.,5.,2,3,9,-1])
|
||||
, llListStatistics(6, [1.,5.,2,3,9,-1])
|
||||
, llListStatistics(7, [1.,5.,2,3,9,-1])
|
||||
, llListStatistics(8, [1.,5.,2,3,9,-1])
|
||||
, llListStatistics(9, [1.,5.,2.,3.,1e40*0,9.])
|
||||
, llListStatistics(9, [1.,5.,2.,3.,1e40*0,-9.])
|
||||
, llListStatistics(9, [1.,5.,2.,3.,1.,9.])
|
||||
, llListStatistics(10, [1.,5.,2,3,9,-1])
|
||||
]
|
16
unit_tests/expr.suite/llliststatistics.out
Normal file
16
unit_tests/expr.suite/llliststatistics.out
Normal file
|
@ -0,0 +1,16 @@
|
|||
[ 0.
|
||||
, 10.
|
||||
, -2.
|
||||
, 9.
|
||||
, 3.1666667
|
||||
, 2.5
|
||||
, -1.
|
||||
, 3.488075
|
||||
, 19.
|
||||
, 121.
|
||||
, 6.
|
||||
, (1e40*0)
|
||||
, 0.
|
||||
, 2.5423028
|
||||
, 0.
|
||||
]
|
18
unit_tests/expr.suite/lllog.lsl
Normal file
18
unit_tests/expr.suite/lllog.lsl
Normal file
|
@ -0,0 +1,18 @@
|
|||
[ llLog((float)"NaN")
|
||||
, llLog(1e40*0)
|
||||
, llLog(-1e40)
|
||||
, llLog(1e40)
|
||||
, llLog(-1.)
|
||||
, llLog(-0.)
|
||||
, llLog(1.)
|
||||
, llLog((float)"0x1.5bf0a8p1") // e
|
||||
, llLog10((float)"NaN")
|
||||
, llLog10(1e40*0)
|
||||
, llLog10(-1e40)
|
||||
, llLog10(1e40)
|
||||
, llLog10(-1.)
|
||||
, llLog10(-0.)
|
||||
, llLog10(1.)
|
||||
, llLog10(100.)
|
||||
, llLog(1e40)
|
||||
]
|
18
unit_tests/expr.suite/lllog.out
Normal file
18
unit_tests/expr.suite/lllog.out
Normal file
|
@ -0,0 +1,18 @@
|
|||
[ 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, 1e40
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.99999994
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, 1e40
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, 2.
|
||||
, 1e40
|
||||
]
|
70
unit_tests/expr.suite/llmodpow.lsl
Normal file
70
unit_tests/expr.suite/llmodpow.lsl
Normal file
|
@ -0,0 +1,70 @@
|
|||
[ llModPow(65535, 3, 0)
|
||||
, llModPow(65535, 3, 41)
|
||||
, llModPow(65535, 3, -2147483648)
|
||||
, llModPow(65535, 3, -2147483647)
|
||||
, llModPow(65533, 3, -2147483648)
|
||||
, llModPow(65533, 3, -2147483645)
|
||||
, llModPow(65533, 3, 2147483645)
|
||||
, llModPow(65533, 3, 555)
|
||||
, llModPow(65533, 3, 1073741823)
|
||||
, llModPow(65533, 3, 1073741824)
|
||||
, llModPow(65533, 3, 1073741825)
|
||||
, llModPow(32767, 3, 1073741825)
|
||||
, llModPow(32767, 3, 107374182)
|
||||
, llModPow(32767, 3, 10737418)
|
||||
, llModPow(32767, 3, 1073741)
|
||||
, llModPow(32767, 3, 107374)
|
||||
, llModPow(32767, 3, 507374)
|
||||
, llModPow(32767, 3, 907374)
|
||||
, llModPow(32767, 3, 707374)
|
||||
, llModPow(32767, 3, 607374)
|
||||
, llModPow(32767, 3, 600374)
|
||||
, llModPow(32767, 3, 550374)
|
||||
, llModPow(32767, 3, 520374)
|
||||
, llModPow(32767, 3, 510374)
|
||||
, llModPow(32767, 3, 500374)
|
||||
, llModPow(32767, 3, 300374)
|
||||
, llModPow(32767, 3, 100374)
|
||||
, llModPow(32767, 3, 130374)
|
||||
, llModPow(32767, 3, 132374)
|
||||
, llModPow(32767, 3, 142374)
|
||||
, llModPow(32767, 3, 172374)
|
||||
, llModPow(32767, 3, 192374)
|
||||
, llModPow(32767, 3, 199374)
|
||||
, llModPow(32767, 3, 209374)
|
||||
, llModPow(32767, 3, 259374)
|
||||
, llModPow(32767, 3, 269374)
|
||||
, llModPow(32767, 3, 261374)
|
||||
, llModPow(32767, 3, 260374)
|
||||
, llModPow(32767, 3, 250374)
|
||||
, llModPow(32767, 3, 259375)
|
||||
, llModPow(32767, 3, 260000)
|
||||
, llModPow(32767, 3, 259999)
|
||||
, llModPow(32767, 3, 259500)
|
||||
, llModPow(32767, 3, 259750)
|
||||
, llModPow(32767, 3, 259850)
|
||||
, llModPow(32767, 3, 259800)
|
||||
, llModPow(32767, 3, 259790)
|
||||
, llModPow(32767, 3, 259770)
|
||||
, llModPow(32767, 3, 259780)
|
||||
, llModPow(32767, 3, 259785)
|
||||
, llModPow(32767, 3, 259782)
|
||||
, llModPow(32767, 3, 259781)
|
||||
, llModPow(32767, 2, 259781)
|
||||
, llModPow(32767, 2, 259782)
|
||||
, llModPow(32767, 3, 259782)
|
||||
, llModPow(-1, 3, 259782)
|
||||
, llModPow(-1, -3, 259782)
|
||||
, llModPow(0, 0, 0)
|
||||
, llModPow(1, 0, 0)
|
||||
, llModPow(1, 0, 1)
|
||||
, llModPow(1, 0, 2)
|
||||
, llModPow(1, 0, 3)
|
||||
, llModPow(1, 0, 4)
|
||||
, llModPow(1, 1, 1)
|
||||
, llModPow(5, 1, 1)
|
||||
, llModPow(5, 25, 7)
|
||||
, llModPow(5, 25, 13)
|
||||
, llModPow(5, 25, 17)
|
||||
, llModPow(41, 1, 17)
|
||||
]
|
70
unit_tests/expr.suite/llmodpow.out
Normal file
70
unit_tests/expr.suite/llmodpow.out
Normal file
|
@ -0,0 +1,70 @@
|
|||
[ 0
|
||||
, 34
|
||||
, 196607
|
||||
, 131071
|
||||
, 1769445
|
||||
, 1572843
|
||||
, 1966047
|
||||
, 142
|
||||
, 1966045
|
||||
, 1769445
|
||||
, 1572845
|
||||
, 98302
|
||||
, 216275
|
||||
, 876887
|
||||
, 230066
|
||||
, 54345
|
||||
, 161343
|
||||
, 346875
|
||||
, 690307
|
||||
, 139309
|
||||
, 146813
|
||||
, 389875
|
||||
, 301047
|
||||
, 36839
|
||||
, 115989
|
||||
, 83681
|
||||
, 23425
|
||||
, 64819
|
||||
, 66641
|
||||
, 93049
|
||||
, 59569
|
||||
, 66591
|
||||
, 112231
|
||||
, 54343
|
||||
, 84733
|
||||
, 49913
|
||||
, 85865
|
||||
, 2379
|
||||
, 78307
|
||||
, 99163
|
||||
, 254367
|
||||
, 90487
|
||||
, 19663
|
||||
, 29663
|
||||
, 49367
|
||||
, 164967
|
||||
, 137017
|
||||
, 64183
|
||||
, 237863
|
||||
, 162132
|
||||
, 85797
|
||||
, 157054
|
||||
, 1416
|
||||
, 257065
|
||||
, 85797
|
||||
, 251271
|
||||
, 251271
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, 1
|
||||
, 1
|
||||
, 1
|
||||
, 0
|
||||
, 0
|
||||
, 5
|
||||
, 5
|
||||
, 12
|
||||
, 7
|
||||
]
|
210
unit_tests/expr.suite/llpow.lsl
Normal file
210
unit_tests/expr.suite/llpow.lsl
Normal file
|
@ -0,0 +1,210 @@
|
|||
[ llPow((float)"nan", (float)"nan")
|
||||
, llPow((float)"nan", -1e40)
|
||||
, llPow((float)"nan", -2.1)
|
||||
, llPow((float)"nan", -2.)
|
||||
, llPow((float)"nan", -1.)
|
||||
, llPow((float)"nan", -0.1)
|
||||
, llPow((float)"nan", -0.)
|
||||
, llPow((float)"nan", 0.)
|
||||
, llPow((float)"nan", 0.1)
|
||||
, llPow((float)"nan", 1.)
|
||||
, llPow((float)"nan", 2.)
|
||||
, llPow((float)"nan", 2.1)
|
||||
, llPow((float)"nan", 1e40)
|
||||
, llPow((float)"nan", 1e40*0)
|
||||
|
||||
, llPow(-1e40, (float)"nan")
|
||||
, llPow(-1e40, -1e40)
|
||||
, llPow(-1e40, -2.1)
|
||||
, llPow(-1e40, -2.)
|
||||
, llPow(-1e40, -1.)
|
||||
, llPow(-1e40, -0.1)
|
||||
, llPow(-1e40, -0.)
|
||||
, llPow(-1e40, 0.)
|
||||
, llPow(-1e40, 0.1)
|
||||
, llPow(-1e40, 1.)
|
||||
, llPow(-1e40, 2.)
|
||||
, llPow(-1e40, 2.1)
|
||||
, llPow(-1e40, 1e40)
|
||||
, llPow(-1e40, 1e40*0)
|
||||
|
||||
, llPow(-2.1, (float)"nan")
|
||||
, llPow(-2.1, -1e40)
|
||||
, llPow(-2.1, -2.1)
|
||||
, llPow(-2.1, -2.)
|
||||
, llPow(-2.1, -1.)
|
||||
, llPow(-2.1, -0.1)
|
||||
, llPow(-2.1, -0.)
|
||||
, llPow(-2.1, 0.)
|
||||
, llPow(-2.1, 0.1)
|
||||
, llPow(-2.1, 1.)
|
||||
, llPow(-2.1, 2.)
|
||||
, llPow(-2.1, 2.1)
|
||||
, llPow(-2.1, 1e40)
|
||||
, llPow(-2.1, 1e40*0)
|
||||
|
||||
, llPow(-2., (float)"nan")
|
||||
, llPow(-2., -1e40)
|
||||
, llPow(-2., -2.1)
|
||||
, llPow(-2., -2.)
|
||||
, llPow(-2., -1.)
|
||||
, llPow(-2., -0.1)
|
||||
, llPow(-2., -0.)
|
||||
, llPow(-2., 0.)
|
||||
, llPow(-2., 0.1)
|
||||
, llPow(-2., 1.)
|
||||
, llPow(-2., 2.)
|
||||
, llPow(-2., 2.1)
|
||||
, llPow(-2., 1e40)
|
||||
, llPow(-2., 1e40*0)
|
||||
|
||||
, llPow(-1., (float)"nan")
|
||||
, llPow(-1., -1e40)
|
||||
, llPow(-1., -2.1)
|
||||
, llPow(-1., -2.)
|
||||
, llPow(-1., -1.)
|
||||
, llPow(-1., -0.1)
|
||||
, llPow(-1., -0.)
|
||||
, llPow(-1., 0.)
|
||||
, llPow(-1., 0.1)
|
||||
, llPow(-1., 1.)
|
||||
, llPow(-1., 2.)
|
||||
, llPow(-1., 2.1)
|
||||
, llPow(-1., 1e40)
|
||||
, llPow(-1., 1e40*0)
|
||||
|
||||
, llPow(-0.1, (float)"nan")
|
||||
, llPow(-0.1, -1e40)
|
||||
, llPow(-0.1, -2.1)
|
||||
, llPow(-0.1, -2.)
|
||||
, llPow(-0.1, -1.)
|
||||
, llPow(-0.1, -0.1)
|
||||
, llPow(-0.1, -0.)
|
||||
, llPow(-0.1, 0.)
|
||||
, llPow(-0.1, 0.1)
|
||||
, llPow(-0.1, 1.)
|
||||
, llPow(-0.1, 2.)
|
||||
, llPow(-0.1, 2.1)
|
||||
, llPow(-0.1, 1e40)
|
||||
, llPow(-0.1, 1e40*0)
|
||||
|
||||
, llPow(-0., (float)"nan")
|
||||
, llPow(-0., -1e40)
|
||||
, llPow(-0., -2.1)
|
||||
, llPow(-0., -2.)
|
||||
, llPow(-0., -1.)
|
||||
, llPow(-0., -0.1)
|
||||
, llPow(-0., -0.)
|
||||
, llPow(-0., 0.)
|
||||
, llPow(-0., 0.1)
|
||||
, llPow(-0., 1.)
|
||||
, llPow(-0., 2.)
|
||||
, llPow(-0., 2.1)
|
||||
, llPow(-0., 1e40)
|
||||
, llPow(-0., 1e40*0)
|
||||
|
||||
, llPow(0., (float)"nan")
|
||||
, llPow(0., -1e40)
|
||||
, llPow(0., -2.1)
|
||||
, llPow(0., -2.)
|
||||
, llPow(0., -1.)
|
||||
, llPow(0., -0.1)
|
||||
, llPow(0., -0.)
|
||||
, llPow(0., 0.)
|
||||
, llPow(0., 0.1)
|
||||
, llPow(0., 1.)
|
||||
, llPow(0., 2.)
|
||||
, llPow(0., 2.1)
|
||||
, llPow(0., 1e40)
|
||||
, llPow(0., 1e40*0)
|
||||
|
||||
, llPow(0.1, (float)"nan")
|
||||
, llPow(0.1, -1e40)
|
||||
, llPow(0.1, -2.1)
|
||||
, llPow(0.1, -2.)
|
||||
, llPow(0.1, -1.)
|
||||
, llPow(0.1, -0.1)
|
||||
, llPow(0.1, -0.)
|
||||
, llPow(0.1, 0.)
|
||||
, llPow(0.1, 0.1)
|
||||
, llPow(0.1, 1.)
|
||||
, llPow(0.1, 2.)
|
||||
, llPow(0.1, 2.1)
|
||||
, llPow(0.1, 1e40)
|
||||
, llPow(0.1, 1e40*0)
|
||||
|
||||
, llPow(1., (float)"nan")
|
||||
, llPow(1., -1e40)
|
||||
, llPow(1., -2.1)
|
||||
, llPow(1., -2.)
|
||||
, llPow(1., -1.)
|
||||
, llPow(1., -0.1)
|
||||
, llPow(1., -0.)
|
||||
, llPow(1., 0.)
|
||||
, llPow(1., 0.1)
|
||||
, llPow(1., 1.)
|
||||
, llPow(1., 2.)
|
||||
, llPow(1., 2.1)
|
||||
, llPow(1., 1e40)
|
||||
, llPow(1., 1e40*0)
|
||||
|
||||
, llPow(2., (float)"nan")
|
||||
, llPow(2., -1e40)
|
||||
, llPow(2., -2.1)
|
||||
, llPow(2., -2.)
|
||||
, llPow(2., -1.)
|
||||
, llPow(2., -0.1)
|
||||
, llPow(2., -0.)
|
||||
, llPow(2., 0.)
|
||||
, llPow(2., 0.1)
|
||||
, llPow(2., 1.)
|
||||
, llPow(2., 2.)
|
||||
, llPow(2., 2.1)
|
||||
, llPow(2., 1e40)
|
||||
, llPow(2., 1e40*0)
|
||||
|
||||
, llPow(2.1, (float)"nan")
|
||||
, llPow(2.1, -1e40)
|
||||
, llPow(2.1, -2.1)
|
||||
, llPow(2.1, -2.)
|
||||
, llPow(2.1, -1.)
|
||||
, llPow(2.1, -0.1)
|
||||
, llPow(2.1, -0.)
|
||||
, llPow(2.1, 0.)
|
||||
, llPow(2.1, 0.1)
|
||||
, llPow(2.1, 1.)
|
||||
, llPow(2.1, 2.)
|
||||
, llPow(2.1, 2.1)
|
||||
, llPow(2.1, 1e40)
|
||||
, llPow(2.1, 1e40*0)
|
||||
|
||||
, llPow(1e40, (float)"nan")
|
||||
, llPow(1e40, -1e40)
|
||||
, llPow(1e40, -2.1)
|
||||
, llPow(1e40, -2.)
|
||||
, llPow(1e40, -1.)
|
||||
, llPow(1e40, -0.1)
|
||||
, llPow(1e40, -0.)
|
||||
, llPow(1e40, 0.)
|
||||
, llPow(1e40, 0.1)
|
||||
, llPow(1e40, 1.)
|
||||
, llPow(1e40, 2.)
|
||||
, llPow(1e40, 2.1)
|
||||
, llPow(1e40, 1e40)
|
||||
, llPow(1e40, 1e40*0)
|
||||
|
||||
, llPow(1e40*0, (float)"nan")
|
||||
, llPow(1e40*0, -1e40)
|
||||
, llPow(1e40*0, -2.1)
|
||||
, llPow(1e40*0, -2.)
|
||||
, llPow(1e40*0, -1.)
|
||||
, llPow(1e40*0, -0.1)
|
||||
, llPow(1e40*0, -0.)
|
||||
, llPow(1e40*0, 0.)
|
||||
, llPow(1e40*0, 0.1)
|
||||
, llPow(1e40*0, 1.)
|
||||
, llPow(1e40*0, 2.)
|
||||
, llPow(1e40*0, 2.1)
|
||||
, llPow(1e40*0, 1e40)
|
||||
, llPow(1e40*0, 1e40*0)
|
||||
]
|
197
unit_tests/expr.suite/llpow.out
Normal file
197
unit_tests/expr.suite/llpow.out
Normal file
|
@ -0,0 +1,197 @@
|
|||
[ (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, 1.
|
||||
, 1.
|
||||
, 1e40
|
||||
, ((float)-1e40)
|
||||
, 1e40
|
||||
, 1e40
|
||||
, 1e40
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, 0.
|
||||
, (1e40*0)
|
||||
, 0.22675739
|
||||
, -0.4761905
|
||||
, (1e40*0)
|
||||
, 1.
|
||||
, 1.
|
||||
, (1e40*0)
|
||||
, -2.1
|
||||
, 4.4099993
|
||||
, (1e40*0)
|
||||
, 1e40
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, 0.
|
||||
, (1e40*0)
|
||||
, 0.25
|
||||
, -0.5
|
||||
, (1e40*0)
|
||||
, 1.
|
||||
, 1.
|
||||
, (1e40*0)
|
||||
, -2.
|
||||
, 4.
|
||||
, (1e40*0)
|
||||
, 1e40
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (1e40*0)
|
||||
, 1.
|
||||
, -1.
|
||||
, (1e40*0)
|
||||
, 1.
|
||||
, 1.
|
||||
, (1e40*0)
|
||||
, -1.
|
||||
, 1.
|
||||
, (1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, 1e40
|
||||
, (1e40*0)
|
||||
, 100.
|
||||
, -10.
|
||||
, (1e40*0)
|
||||
, 1.
|
||||
, 1.
|
||||
, (1e40*0)
|
||||
, -0.1
|
||||
, 0.010000001
|
||||
, (1e40*0)
|
||||
, 0.
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, 1e40
|
||||
, 1e40
|
||||
, 1e40
|
||||
, ((float)-1e40)
|
||||
, 1e40
|
||||
, 1.
|
||||
, 1.
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, 1e40
|
||||
, 1e40
|
||||
, 1e40
|
||||
, 1e40
|
||||
, 1e40
|
||||
, 1.
|
||||
, 1.
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, 1e40
|
||||
, 125.89251
|
||||
, 100.
|
||||
, 10.
|
||||
, 1.2589254
|
||||
, 1.
|
||||
, 1.
|
||||
, 0.7943282
|
||||
, 0.1
|
||||
, 0.010000001
|
||||
, 0.007943285
|
||||
, 0.
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, 1.
|
||||
, 1.
|
||||
, 1.
|
||||
, 1.
|
||||
, 1.
|
||||
, 1.
|
||||
, 1.
|
||||
, 1.
|
||||
, 1.
|
||||
, 1.
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, 0.
|
||||
, 0.23325826
|
||||
, 0.25
|
||||
, 0.5
|
||||
, 0.933033
|
||||
, 1.
|
||||
, 1.
|
||||
, 1.0717734
|
||||
, 2.
|
||||
, 4.
|
||||
, 4.2870936
|
||||
, 1e40
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, 0.
|
||||
, 0.2105424
|
||||
, 0.22675739
|
||||
, 0.4761905
|
||||
, 0.9284918
|
||||
, 1.
|
||||
, 1.
|
||||
, 1.0770154
|
||||
, 2.1
|
||||
, 4.4099993
|
||||
, 4.749637
|
||||
, 1e40
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, 1.
|
||||
, 1.
|
||||
, 1e40
|
||||
, 1e40
|
||||
, 1e40
|
||||
, 1e40
|
||||
, 1e40
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
]
|
82
unit_tests/expr.suite/llunescapeurl.lsl
Normal file
82
unit_tests/expr.suite/llunescapeurl.lsl
Normal file
|
@ -0,0 +1,82 @@
|
|||
[ llUnescapeURL("%")
|
||||
, llUnescapeURL("%%")
|
||||
, llUnescapeURL("%4%252Fabc")
|
||||
, llEscapeURL(llUnescapeURL("%%4%252Fabc"))
|
||||
, llStringToBase64(llUnescapeURL("%%4%252Fabc"))
|
||||
|
||||
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c"))
|
||||
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c%"))
|
||||
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c%2"))
|
||||
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c%%"))
|
||||
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c%%2"))
|
||||
, llEscapeURL(llUnescapeURL("%.44%25%%2Fa←c%%%2346"))
|
||||
, llEscapeURL(llUnescapeURL("%4.%25"))
|
||||
|
||||
// Test UTF-8 validity
|
||||
, llEscapeURL(llUnescapeURL("%C3%81%80%E3%81%C3%80ABC%D3"))
|
||||
, llEscapeURL(llUnescapeURL("%C3%81%80%E3%81%C3%80ABC%00%D3"))
|
||||
, llEscapeURL(llUnescapeURL("%E0%80%80%80%80%80%80%E3%81%C3%80ABC%00%D3"))
|
||||
// test UTF-8 valid ranges
|
||||
// thorough control codes
|
||||
, llEscapeURL(llUnescapeURL("%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F"))
|
||||
, llEscapeURL(llUnescapeURL("%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F"))
|
||||
// DEL
|
||||
, llEscapeURL(llUnescapeURL("%7Fx"))
|
||||
// invalid ranges
|
||||
, llEscapeURL(llUnescapeURL("%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%BF%BFx"))
|
||||
// aliased
|
||||
, llEscapeURL(llUnescapeURL("%C0%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%C1%BFx"))
|
||||
// valid range
|
||||
, llEscapeURL(llUnescapeURL("%C2%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%DF%BFx"))
|
||||
// aliased
|
||||
, llEscapeURL(llUnescapeURL("%E0%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%E0%9F%BFx"))
|
||||
// valid range
|
||||
, llEscapeURL(llUnescapeURL("%E0%A0%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%ED%9F%BFx"))
|
||||
// invalid (UTF-16 high surrogates)
|
||||
, llEscapeURL(llUnescapeURL("%ED%A0%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%ED%AF%BFx"))
|
||||
// invalid (UTF-16 low surrogates)
|
||||
, llEscapeURL(llUnescapeURL("%ED%B0%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%ED%BF%BFx"))
|
||||
// valid range
|
||||
, llEscapeURL(llUnescapeURL("%EE%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%EF%BF%BFx"))
|
||||
// aliased
|
||||
, llEscapeURL(llUnescapeURL("%F0%80%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%F0%8F%BF%BFx"))
|
||||
// valid range
|
||||
, llEscapeURL(llUnescapeURL("%F0%90%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%F4%8F%BF%BFx"))
|
||||
// codepoints > U+10FFFF (all invalid)
|
||||
, llEscapeURL(llUnescapeURL("%F4%90%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%F7%BF%BF%BFx"))
|
||||
, llEscapeURL(llUnescapeURL("%F8%80%80%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%F8%87%BF%BF%BFx"))
|
||||
, llEscapeURL(llUnescapeURL("%F8%88%80%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%FB%BF%BF%BF%BFx"))
|
||||
, llEscapeURL(llUnescapeURL("%FC%80%80%80%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%FC%83%BF%BF%BF%BFx"))
|
||||
, llEscapeURL(llUnescapeURL("%FC%84%80%80%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%FD%BF%BF%BF%BF%BFx"))
|
||||
// FE and FF are used for the UTF-16 and UTF-32 BOM
|
||||
, llEscapeURL(llUnescapeURL("%FE%B0%80%80%80%80%80%80x"))
|
||||
, llEscapeURL(llUnescapeURL("%FF%BF%BF%BF%BF%BF%BF%BFx"))
|
||||
// short or invalid sequences
|
||||
, llEscapeURL(llUnescapeURL("%80"))
|
||||
, llEscapeURL(llUnescapeURL("%BF"))
|
||||
, llEscapeURL(llUnescapeURL("%C2"))
|
||||
, llEscapeURL(llUnescapeURL("%E1"))
|
||||
, llEscapeURL(llUnescapeURL("%E1%80"))
|
||||
, llEscapeURL(llUnescapeURL("%F1"))
|
||||
, llEscapeURL(llUnescapeURL("%F1%80"))
|
||||
, llEscapeURL(llUnescapeURL("%F1%80%80"))
|
||||
|
||||
// Test that U+FFFD is preserved even with invalid characters
|
||||
, llEscapeURL(llUnescapeURL("%EF%BF%BD%90"))
|
||||
|
||||
]
|
60
unit_tests/expr.suite/llunescapeurl.out
Normal file
60
unit_tests/expr.suite/llunescapeurl.out
Normal file
|
@ -0,0 +1,60 @@
|
|||
[ ""
|
||||
, ""
|
||||
, "@252Fabc"
|
||||
, "%04%252Fabc"
|
||||
, "BCUyRmFiYw=="
|
||||
, "%044%25%02Fa%E2%86%90c"
|
||||
, "%044%25%02Fa%E2%86%90c"
|
||||
, "%044%25%02Fa%E2%86%90c"
|
||||
, "%044%25%02Fa%E2%86%90c"
|
||||
, "%044%25%02Fa%E2%86%90c%02"
|
||||
, "%044%25%02Fa%E2%86%90c"
|
||||
, "%40%25"
|
||||
, "%C3%81%3F%3F%3F%C3%80ABC%3F"
|
||||
, "%C3%81%3F%3F%3F%C3%80ABC"
|
||||
, "%3F%3F%3F%3F%3F%3F%3F%3F%3F%C3%80ABC"
|
||||
, "%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F"
|
||||
, "%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F"
|
||||
, "%7Fx"
|
||||
, "%3F%3Fx"
|
||||
, "%3F%3Fx"
|
||||
, "%3F%3Fx"
|
||||
, "%3F%3Fx"
|
||||
, "%C2%80x"
|
||||
, "%DF%BFx"
|
||||
, "%3F%3F%3Fx"
|
||||
, "%3F%3F%3Fx"
|
||||
, "%E0%A0%80x"
|
||||
, "%ED%9F%BFx"
|
||||
, "%3F%3F%3Fx"
|
||||
, "%3F%3F%3Fx"
|
||||
, "%3F%3F%3Fx"
|
||||
, "%3F%3F%3Fx"
|
||||
, "%EE%80%80x"
|
||||
, "%EF%BF%BFx"
|
||||
, "%3F%3F%3F%3Fx"
|
||||
, "%3F%3F%3F%3Fx"
|
||||
, "%F0%90%80%80x"
|
||||
, "%F4%8F%BF%BFx"
|
||||
, "%3F%3F%3F%3Fx"
|
||||
, "%3F%3F%3F%3Fx"
|
||||
, "%3F%3F%3F%3F%3Fx"
|
||||
, "%3F%3F%3F%3F%3Fx"
|
||||
, "%3F%3F%3F%3F%3Fx"
|
||||
, "%3F%3F%3F%3F%3Fx"
|
||||
, "%3F%3F%3F%3F%3F%3Fx"
|
||||
, "%3F%3F%3F%3F%3F%3Fx"
|
||||
, "%3F%3F%3F%3F%3F%3Fx"
|
||||
, "%3F%3F%3F%3F%3F%3Fx"
|
||||
, "%3F%3F%3F%3F%3F%3F%3F%3Fx"
|
||||
, "%3F%3F%3F%3F%3F%3F%3F%3Fx"
|
||||
, "%3F"
|
||||
, "%3F"
|
||||
, "%3F"
|
||||
, "%3F"
|
||||
, "%3F%3F"
|
||||
, "%3F"
|
||||
, "%3F%3F"
|
||||
, "%3F%3F%3F"
|
||||
, "%EF%BF%BD%3F"
|
||||
]
|
1
unit_tests/expr.suite/llunescapeurl.run
Normal file
1
unit_tests/expr.suite/llunescapeurl.run
Normal file
|
@ -0,0 +1 @@
|
|||
main.py -O clear,optimize,constfold,addstrings,foldtabs,expr -
|
7
unit_tests/expr.suite/math-error.lsl
Normal file
7
unit_tests/expr.suite/math-error.lsl
Normal file
|
@ -0,0 +1,7 @@
|
|||
[ 1e40/1e40
|
||||
, 1./0
|
||||
, 1/0
|
||||
, (float)"nan" / 1
|
||||
, 1./(float)"nan"
|
||||
, 5%0
|
||||
]
|
7
unit_tests/expr.suite/math-error.out
Normal file
7
unit_tests/expr.suite/math-error.out
Normal file
|
@ -0,0 +1,7 @@
|
|||
[ 1e40 / 1e40
|
||||
, 1. / 0
|
||||
, 1 / 0
|
||||
, (-1e40*0) / 1
|
||||
, 1. / (-1e40*0)
|
||||
, 5 % 0
|
||||
]
|
67
unit_tests/expr.suite/math-funcs.lsl
Normal file
67
unit_tests/expr.suite/math-funcs.lsl
Normal file
|
@ -0,0 +1,67 @@
|
|||
[ llAbs(0)
|
||||
, llAbs(4)
|
||||
, llAbs(-4)
|
||||
, llAbs(2147483647)
|
||||
, llAbs(-2147483647)
|
||||
, llAbs(-2147483649)
|
||||
, llAbs(-2147483650)
|
||||
, llFabs(-0.0)
|
||||
, llFabs(1e40)
|
||||
, llFabs(-1e40)
|
||||
, llFabs(2147483648.)
|
||||
, llFabs(-2147483648.)
|
||||
, llFabs(1e40*0)
|
||||
, llFabs(-1e40*0)
|
||||
, llFabs(1.0)
|
||||
, llFabs(1.0000001)
|
||||
, llFabs(0.99999995)
|
||||
, llFloor(-0.0)
|
||||
, llFloor(1e40)
|
||||
, llFloor(2147483648.)
|
||||
, llFloor(-2147483648.)
|
||||
, llFloor(1e40*0)
|
||||
, llFloor(-1e40*0)
|
||||
, llFloor(1.0)
|
||||
, llFloor(1.0000001)
|
||||
, llFloor(0.99999995)
|
||||
, llCeil(-0.0)
|
||||
, llCeil(1e40)
|
||||
, llCeil(2147483648.)
|
||||
, llCeil(-2147483648.)
|
||||
, llCeil(1e40*0)
|
||||
, llCeil(-1e40*0)
|
||||
, llCeil(1.0)
|
||||
, llCeil(1.0000001)
|
||||
, llCeil(0.99999995)
|
||||
, llRound(-0.0)
|
||||
, llRound(1e40)
|
||||
, llRound(2147483648.)
|
||||
, llRound(-2147483648.)
|
||||
, llRound(1e40*0)
|
||||
, llRound(-1e40*0)
|
||||
, llRound(1.0)
|
||||
, llRound(1.0000001)
|
||||
, llRound(0.99999995)
|
||||
, llRound(0.49999997) // gives 1!
|
||||
, llRound(0.5)
|
||||
, llRound(0.50000005)
|
||||
, llRound(-0.49999997) // gives 0
|
||||
, llRound(-0.5) // gives 0
|
||||
, llRound(-0.50000005) // gives -1
|
||||
, llRound(-2.5)
|
||||
, llRound(-3.5)
|
||||
, llSqrt(-1.)
|
||||
, llSqrt(0.)
|
||||
, llSqrt(-0.)
|
||||
, llSqrt(1.)
|
||||
, llSqrt(2.)
|
||||
, llSqrt(1e40)
|
||||
, llSqrt(1e40*0)
|
||||
, llSqrt(-1e40*0)
|
||||
, llVecMag(<-0.,-0.,-0.>)
|
||||
, llVecMag(<48, 60, 64>)
|
||||
, llVecMag(<-48, -60, -64>)
|
||||
, llVecDist(<0,0,0>, <0,0,0>)
|
||||
, llVecDist(<0,0,0>, <48,-60,-64>)
|
||||
, llVecDist(<-30,30,30>, <18,-30,-34>)
|
||||
]
|
67
unit_tests/expr.suite/math-funcs.out
Normal file
67
unit_tests/expr.suite/math-funcs.out
Normal file
|
@ -0,0 +1,67 @@
|
|||
[ 0
|
||||
, 4
|
||||
, 4
|
||||
, 2147483647
|
||||
, 2147483647
|
||||
, 2147483647
|
||||
, 2147483646
|
||||
, -0.
|
||||
, 1e40
|
||||
, 1e40
|
||||
, 2147483648.
|
||||
, 2147483648.
|
||||
, (1e40*0)
|
||||
, (-1e40*0)
|
||||
, 1.
|
||||
, 1.0000001
|
||||
, 0.99999994
|
||||
, 0
|
||||
, -2147483648
|
||||
, -2147483648
|
||||
, -2147483648
|
||||
, -2147483648
|
||||
, -2147483648
|
||||
, 1
|
||||
, 1
|
||||
, 0
|
||||
, 0
|
||||
, -2147483648
|
||||
, -2147483648
|
||||
, -2147483648
|
||||
, -2147483648
|
||||
, -2147483648
|
||||
, 1
|
||||
, 2
|
||||
, 1
|
||||
, 0
|
||||
, -2147483648
|
||||
, -2147483648
|
||||
, -2147483648
|
||||
, -2147483648
|
||||
, -2147483648
|
||||
, 1
|
||||
, 1
|
||||
, 1
|
||||
, 1
|
||||
, 1
|
||||
, 1
|
||||
, 0
|
||||
, 0
|
||||
, -1
|
||||
, -2
|
||||
, -3
|
||||
, (1e40*0)
|
||||
, 0.
|
||||
, -0.
|
||||
, 1.
|
||||
, 1.4142135
|
||||
, 1e40
|
||||
, (1e40*0)
|
||||
, (-1e40*0)
|
||||
, 0.
|
||||
, 100.
|
||||
, 100.
|
||||
, 0.
|
||||
, 100.
|
||||
, 100.
|
||||
]
|
13
unit_tests/expr.suite/misc-functions.lsl
Normal file
13
unit_tests/expr.suite/misc-functions.lsl
Normal file
|
@ -0,0 +1,13 @@
|
|||
[ llDumpList2String([1e11], "/")
|
||||
, llFrand(0.0)
|
||||
, llFrand(-0.0)
|
||||
, llFrand(1e40)
|
||||
, llFrand(-1e40)
|
||||
, llFrand(1e40*0)
|
||||
, llFrand((float)"nan")
|
||||
, llDumpList2String(llCSV2List("a,<<1,2>,3,4,\">5,6, \"1,3\",7<<>,8,9"), "|")
|
||||
, llGetListEntryType([], 0)
|
||||
, llGetListEntryType([[]], 0)
|
||||
, llMD5String("", 0)
|
||||
, llSHA1String("")
|
||||
]
|
13
unit_tests/expr.suite/misc-functions.out
Normal file
13
unit_tests/expr.suite/misc-functions.out
Normal file
|
@ -0,0 +1,13 @@
|
|||
[ "100000000000.000000"
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, 0.
|
||||
, (1e40*0)
|
||||
, (-1e40*0)
|
||||
, "a|<<1,2>,3,4,\">5|6|\"1|3\"|7<<>,8,9"
|
||||
, 0
|
||||
, 0
|
||||
, "1a9d5db22c73a993ff0b42f64b396873"
|
||||
, "da39a3ee5e6b4b0d3255bfef95601890afd80709"
|
||||
]
|
66
unit_tests/expr.suite/nan-fcast-vcast-minus0.lsl
Normal file
66
unit_tests/expr.suite/nan-fcast-vcast-minus0.lsl
Normal file
|
@ -0,0 +1,66 @@
|
|||
[ (float)"inf"
|
||||
, (float)"-inf"
|
||||
, (float)"+inf"
|
||||
, (float)"--inf"
|
||||
, (float)"+-inf"
|
||||
, 1e400
|
||||
, 1e39
|
||||
, -1e400
|
||||
, -0*1e40
|
||||
, 0*1e40
|
||||
, 1e20
|
||||
, llList2CSV([(float)"nan"])
|
||||
, llList2CSV([-(float)"nan"])
|
||||
, llList2CSV([(float)"-nan"])
|
||||
, llList2CSV([(float)"-nanometre"])
|
||||
, llList2CSV([(float)"--nan"])
|
||||
, -0.
|
||||
, 0.
|
||||
, -0
|
||||
, 0
|
||||
, (float)"-0x13"
|
||||
, (float)"+0x13"
|
||||
, (float)"-0x13p1"
|
||||
, (float)"+0x13p1"
|
||||
, <-0, -0., 0>
|
||||
, (vector)"<nan,-0,-0.>"
|
||||
, (vector)"<-nan,1,1>"
|
||||
, (vector)"<nano,nano,nano>"
|
||||
, (vector)"<nan,nan,nano>"
|
||||
, (vector)"<nan(1),nan,nano>"
|
||||
, (string)<0,0,0>
|
||||
, (string)[<0,0,0>]
|
||||
, (list)<(float)"nan", 2, 3>
|
||||
, (list)[<(float)"nan", 2, 3>]
|
||||
, (float)"1e-38"
|
||||
, (vector)"<1e-38,0,0>"
|
||||
, 1e40/1
|
||||
, 1e40-1e40
|
||||
, (1e40*0)*(1e40*0)
|
||||
, (-1e40*0)*(1e40*0)
|
||||
, (1e40*0)*(-1e40*0)
|
||||
, (-1e40*0)*(-1e40*0)
|
||||
, -0. < 0.
|
||||
, 1e40 < 1e40
|
||||
, -1e40 < 1e40
|
||||
, <3.,0.,-0.>*0.
|
||||
, <3.,0.,-0.>*-0.
|
||||
, <3.,0.,-0.>*1e40
|
||||
, <3.,0.,-0.>*-1e40
|
||||
, <3.,0.,-0.>*(1e40*0)
|
||||
, <3.,0.,-0.>*(-1e40*0)
|
||||
, <1e40,1e40*0,-1e40*0>*0.
|
||||
, <1e40,1e40*0,-1e40*0>*-0.
|
||||
, <1e40,1e40*0,-1e40*0>*1e40
|
||||
, <1e40,1e40*0,-1e40*0>*-1e40
|
||||
, <1e40,1e40*0,-1e40*0>*(1e40*0)
|
||||
, <1e40,1e40*0,-1e40*0>*(-1e40*0)
|
||||
, <3.,0.,-0.>/1e40
|
||||
, <3.,0.,-0.>/-1e40
|
||||
, <3.,0.,-0.>/(1e40*0)
|
||||
, <3.,0.,-0.>/(-1e40*0)
|
||||
, <1e40,1e40*0,-1e40*0>/1e40
|
||||
, <1e40,1e40*0,-1e40*0>/-1e40
|
||||
, <1e40,1e40*0,-1e40*0>/(1e40*0)
|
||||
, <1e40,1e40*0,-1e40*0>/(-1e40*0)
|
||||
]
|
66
unit_tests/expr.suite/nan-fcast-vcast-minus0.out
Normal file
66
unit_tests/expr.suite/nan-fcast-vcast-minus0.out
Normal file
|
@ -0,0 +1,66 @@
|
|||
[ 1e40
|
||||
, ((float)-1e40)
|
||||
, 1e40
|
||||
, 0.
|
||||
, 0.
|
||||
, 1e40
|
||||
, 1e40
|
||||
, ((float)-1e40)
|
||||
, (-1e40*0)
|
||||
, (1e40*0)
|
||||
, 1e20
|
||||
, "nan"
|
||||
, "-nan"
|
||||
, "nan"
|
||||
, "nan"
|
||||
, "0.000000"
|
||||
, -0.
|
||||
, 0.
|
||||
, 0
|
||||
, 0
|
||||
, -19.
|
||||
, 19.
|
||||
, -38.
|
||||
, 38.
|
||||
, <0., -0., 0.>
|
||||
, <(-1e40*0), -0., -0.>
|
||||
, <(1e40*0), 1., 1.>
|
||||
, <0., 0., 0.>
|
||||
, <(-1e40*0), (-1e40*0), (-1e40*0)>
|
||||
, <0., 0., 0.>
|
||||
, "<0.00000, 0.00000, 0.00000>"
|
||||
, "<0.000000, 0.000000, 0.000000>"
|
||||
, [<(-1e40*0), 2., 3.>]
|
||||
, [<(-1e40*0), 2., 3.>]
|
||||
, 0.
|
||||
, <1e-38, 0., 0.>
|
||||
, 1e40
|
||||
, (1e40*0)
|
||||
, (1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, 0
|
||||
, 0
|
||||
, 1
|
||||
, <0., 0., -0.>
|
||||
, <-0., -0., 0.>
|
||||
, <1e40, (1e40*0), (1e40*0)>
|
||||
, <((float)-1e40), (1e40*0), (1e40*0)>
|
||||
, <(1e40*0), (1e40*0), (1e40*0)>
|
||||
, <(-1e40*0), (-1e40*0), (-1e40*0)>
|
||||
, <(1e40*0), (1e40*0), (-1e40*0)>
|
||||
, <(1e40*0), (1e40*0), (-1e40*0)>
|
||||
, <1e40, (1e40*0), (-1e40*0)>
|
||||
, <((float)-1e40), (1e40*0), (-1e40*0)>
|
||||
, <(1e40*0), (1e40*0), (-1e40*0)>
|
||||
, <(-1e40*0), (-1e40*0), (-1e40*0)>
|
||||
, <0., 0., -0.>
|
||||
, <-0., -0., 0.>
|
||||
, <(1e40*0), (1e40*0), (1e40*0)>
|
||||
, <(-1e40*0), (-1e40*0), (-1e40*0)>
|
||||
, <(1e40*0), (1e40*0), (-1e40*0)>
|
||||
, <(1e40*0), (1e40*0), (-1e40*0)>
|
||||
, <(1e40*0), (1e40*0), (-1e40*0)>
|
||||
, <(-1e40*0), (-1e40*0), (-1e40*0)>
|
||||
]
|
42
unit_tests/expr.suite/operators-compare.lsl
Normal file
42
unit_tests/expr.suite/operators-compare.lsl
Normal file
|
@ -0,0 +1,42 @@
|
|||
[ 1 == 1
|
||||
, 1e40*0 == 1e40*0
|
||||
, (float)"nan" == (float)"nan"
|
||||
, (float)"nan" == 1e40*0
|
||||
, 3.14==3.14
|
||||
, 1 == 2
|
||||
, 3.14 == 3.1399999
|
||||
, 1 != 1
|
||||
, (float)"nan" != (float)"nan"
|
||||
, "a" != "b"
|
||||
, "a" == "b"
|
||||
, "a" != "a"
|
||||
, "a" == "a"
|
||||
, [1,2] != [3,4]
|
||||
, [1,2] == [3,4]
|
||||
, [1] != [2,3]
|
||||
, <1,2,3,4> == <1.,2.,3.,4.2>
|
||||
, <1,2,3> == <1.,2.,3.>
|
||||
, (key)NULL_KEY == (key)TEXTURE_BLANK
|
||||
, (key)NULL_KEY != (key)TEXTURE_BLANK
|
||||
, (key)NULL_KEY == NULL_KEY
|
||||
, (key)"ABCDEFAB-ABCD-ABCD-ABCD-ABCDEFABCDEF" ==
|
||||
(key)"abcdefab-abcd-abcd-abcd-abcdefabcdef"
|
||||
, 1 == 1.
|
||||
, 1 < 2
|
||||
, 2 > 1
|
||||
, 2 < 2
|
||||
, 2 > 2
|
||||
, 3 < 2
|
||||
, 2 > 3
|
||||
, -2 < -1
|
||||
, -2. < -1.
|
||||
, -1. < -1.
|
||||
, -0. < 0.
|
||||
, (float)"nan" < 2
|
||||
, (float)"nan" > 2
|
||||
, 2 < (float)"nan"
|
||||
, 2 > (float)"nan"
|
||||
, (float)"nan" < (1e40*0)
|
||||
, 1e40 < 1e40
|
||||
, -1e40 < 1e40
|
||||
]
|
41
unit_tests/expr.suite/operators-compare.out
Normal file
41
unit_tests/expr.suite/operators-compare.out
Normal file
|
@ -0,0 +1,41 @@
|
|||
[ 1
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, 1
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, 1
|
||||
, 1
|
||||
, 0
|
||||
, 0
|
||||
, 1
|
||||
, 0
|
||||
, 1
|
||||
, -1
|
||||
, 0
|
||||
, 1
|
||||
, 0
|
||||
, 1
|
||||
, 1
|
||||
, 0
|
||||
, 1
|
||||
, 1
|
||||
, 1
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, 1
|
||||
, 1
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, 1
|
||||
]
|
107
unit_tests/expr.suite/operators.lsl
Normal file
107
unit_tests/expr.suite/operators.lsl
Normal file
|
@ -0,0 +1,107 @@
|
|||
[ 1*0
|
||||
, (-1)*0
|
||||
, (-1.)*0.
|
||||
, (-0.)*1.
|
||||
, (-0.)*-1.
|
||||
, 0/9
|
||||
, (-1)/-9
|
||||
, (-8)/-9
|
||||
, (-9)/-9
|
||||
, (-1)/9
|
||||
, (-8)/9
|
||||
, (-9)/9
|
||||
, 1/-9
|
||||
, 8/-9
|
||||
, 9/-9
|
||||
, 1/9
|
||||
, 8/9
|
||||
, 9/9
|
||||
, 0x80000000/-1
|
||||
, <3,6,9>/3
|
||||
, -(-2147483648)
|
||||
, -(2147483647)
|
||||
, (-2147483648)+(-1)
|
||||
, (-2147483648.)+(-1.)
|
||||
, (-2147483648.)+(-1)
|
||||
, (-2147483648)+(-1.)
|
||||
, -<-.5,.5,.4>
|
||||
, -<-.5,.5,.4,-.4>
|
||||
, <1.,2.,3.>+<2.,4.,6.>
|
||||
, <1.,2.,3.,4.>+<2.,4.,6.,8.>
|
||||
, ["1"] + ["2"]
|
||||
, "1" + ["2"]
|
||||
, ["1"] + "2"
|
||||
, "1" + "2"
|
||||
, 1-2
|
||||
, 1.-2
|
||||
, 1-2.
|
||||
, 1.-2.
|
||||
, (-2147483647)-2
|
||||
, <1.,2.,3>-<2.,4.,6>
|
||||
, <1.,2.,3.,4.>-<2.,4.,6.,8.>
|
||||
, 2.*<1.,2.,3.>
|
||||
, <1.6, 3.2, 6.4, 6.8> * <1., 0., 0., 0.>
|
||||
, 1*2
|
||||
, 1*2.
|
||||
, 1.*2
|
||||
, 1.*2.
|
||||
, <3.,4.,5.>*<3.,4.,5.>
|
||||
, <3.,4.,5.>*1.
|
||||
, <3.,4.,5.>*ZERO_ROTATION
|
||||
, <3.,4.,5.>*<.22,.26,.38,.86>
|
||||
, <3.,4.,5.>/<.22,.26,.38,.86>
|
||||
, 0 % 5
|
||||
, 1 % 5
|
||||
, 2 % 5
|
||||
, 3 % 5
|
||||
, 4 % 5
|
||||
, 5 % 5
|
||||
, 6 % 5
|
||||
, (-1) % 5
|
||||
, (-2) % 5
|
||||
, (-3) % 5
|
||||
, (-4) % 5
|
||||
, (-5) % 5
|
||||
, (-6) % 5
|
||||
, 0 % -5
|
||||
, 1 % -5
|
||||
, 2 % -5
|
||||
, 3 % -5
|
||||
, 4 % -5
|
||||
, 5 % -5
|
||||
, 6 % -5
|
||||
, (-1) % -5
|
||||
, (-2) % -5
|
||||
, (-3) % -5
|
||||
, (-4) % -5
|
||||
, (-5) % -5
|
||||
, (-6) % -5
|
||||
, (-2147483648) % 5
|
||||
, (-2147483648) % -5
|
||||
, 5 % (-2147483648)
|
||||
, 5 % 2147483647
|
||||
, <1,0,0>%<0,1,0>
|
||||
, 1 << -33
|
||||
, 1 << -1
|
||||
, 1 << 0
|
||||
, 1 << 1
|
||||
, 1 << 31
|
||||
, 1 << 32
|
||||
, 1 << 33
|
||||
, 1 << 63
|
||||
, 1 << 64
|
||||
, 1 << 66
|
||||
, 1 << 66
|
||||
, 0xC0000000 >> -33
|
||||
, 0xC0000000 >> -1
|
||||
, 0xC0000000 >> 0
|
||||
, 0xC0000000 >> 1
|
||||
, 0xC0000000 >> 30
|
||||
, 0xC0000000 >> 31
|
||||
, 0xC0000000 >> 32
|
||||
, 0xC0000000 >> 33
|
||||
, 0xC0000000 >> 63
|
||||
, 0xC0000000 >> 64
|
||||
, 0xC0000000 >> 65
|
||||
, 0xC0000000 >> 66
|
||||
]
|
107
unit_tests/expr.suite/operators.out
Normal file
107
unit_tests/expr.suite/operators.out
Normal file
|
@ -0,0 +1,107 @@
|
|||
[ 0
|
||||
, 0
|
||||
, -0.
|
||||
, -0.
|
||||
, 0.
|
||||
, 0
|
||||
, 0
|
||||
, 0
|
||||
, 1
|
||||
, 0
|
||||
, 0
|
||||
, -1
|
||||
, 0
|
||||
, 0
|
||||
, -1
|
||||
, 0
|
||||
, 0
|
||||
, 1
|
||||
, -2147483648
|
||||
, <1., 2., 3.>
|
||||
, -2147483648
|
||||
, -2147483647
|
||||
, 2147483647
|
||||
, -2147483648.
|
||||
, -2147483648.
|
||||
, -2147483648.
|
||||
, <0.5, -0.5, -0.4>
|
||||
, <0.5, -0.5, -0.4, 0.4>
|
||||
, <3., 6., 9.>
|
||||
, <3., 6., 9., 12.>
|
||||
, ["1", "2"]
|
||||
, ["1", "2"]
|
||||
, ["1", "2"]
|
||||
, "12"
|
||||
, -1
|
||||
, -1.
|
||||
, -1.
|
||||
, -1.
|
||||
, 2147483647
|
||||
, <-1., -2., -3.>
|
||||
, <-1., -2., -3., -4.>
|
||||
, <2., 4., 6.>
|
||||
, <6.8, -6.4, 3.2, -1.6>
|
||||
, 2
|
||||
, 2.
|
||||
, 2.
|
||||
, 2.
|
||||
, 50.
|
||||
, <3., 4., 5.>
|
||||
, <3., 4., 5.>
|
||||
, <2.6432, 3.8576, 5.304>
|
||||
, <3.4, 3.72, 4.96>
|
||||
, 0
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, 0
|
||||
, 1
|
||||
, -1
|
||||
, -2
|
||||
, -3
|
||||
, -4
|
||||
, 0
|
||||
, -1
|
||||
, 0
|
||||
, 1
|
||||
, 2
|
||||
, 3
|
||||
, 4
|
||||
, 0
|
||||
, 1
|
||||
, -1
|
||||
, -2
|
||||
, -3
|
||||
, -4
|
||||
, 0
|
||||
, -1
|
||||
, -3
|
||||
, -3
|
||||
, 5
|
||||
, 5
|
||||
, <0., 0., 1.>
|
||||
, -2147483648
|
||||
, -2147483648
|
||||
, 1
|
||||
, 2
|
||||
, -2147483648
|
||||
, 1
|
||||
, 2
|
||||
, -2147483648
|
||||
, 1
|
||||
, 4
|
||||
, 4
|
||||
, -1
|
||||
, -1
|
||||
, -1073741824
|
||||
, -536870912
|
||||
, -1
|
||||
, -1
|
||||
, -1073741824
|
||||
, -536870912
|
||||
, -1
|
||||
, -1073741824
|
||||
, -536870912
|
||||
, -268435456
|
||||
]
|
36
unit_tests/expr.suite/opts.lsl
Normal file
36
unit_tests/expr.suite/opts.lsl
Normal file
|
@ -0,0 +1,36 @@
|
|||
// Operator optimization tests
|
||||
[ llGetLinkNumber() + 1
|
||||
, llGetLinkNumber() + 2
|
||||
, llGetLinkNumber() + 3
|
||||
, llGetLinkNumber() + 4
|
||||
, llGetLinkNumber() - 1
|
||||
, llGetLinkNumber() - 2
|
||||
, llGetLinkNumber() - 3
|
||||
, llGetLinkNumber() - 4
|
||||
, -~-~-~llGetLinkNumber()
|
||||
, ~-~-~-llGetLinkNumber()
|
||||
, llGetLinkNumber() + 3 + 2
|
||||
// currently optimized to -3 + -~-~llGetLinkNumber(); we could do better here
|
||||
, 2 + llGetLinkNumber() - 3
|
||||
, -(-llGetLinkNumber() + 2)
|
||||
, llGetLinkNumber()==2
|
||||
, llGetLinkNumber() + llGetLinkNumber() + llGetLinkNumber()
|
||||
, llGetLinkNumber() > 2
|
||||
// TODO: Reduce stack here: Swap to 2 > llGetLinkNumber()
|
||||
, llGetLinkNumber() < 2
|
||||
, llGetTime() + 1 + 2
|
||||
, 5 + llGetLinkNumber() + 6
|
||||
, llGetLinkNumber() - 5 == 0
|
||||
// TODO: Can be simplified by adding 5 to both sides.
|
||||
// Don't do the same with > and < because of wraparound.
|
||||
, llGetLinkNumber() - 5 == 12
|
||||
, llGetLinkNumber() - 5 != 12
|
||||
, -(-1-(-(-1-(-(-1-(llGetLinkNumber()))))))
|
||||
, -1-llGetLinkNumber()
|
||||
, -~~-llGetLinkNumber()
|
||||
, (llGetLinkNumber() + 2) + (llGetLinkNumber() + 2)
|
||||
, (llGetLinkNumber() + 2) + (llGetLinkNumber() - 2)
|
||||
, (llGetLinkNumber() - 2) + (llGetLinkNumber() - 2)
|
||||
, (llGetLinkNumber() + 5) + (llGetLinkNumber() + 5)
|
||||
, llGetLinkNumber()*llGetLinkNumber() - llGetLinkNumber()*llGetLinkNumber()
|
||||
]
|
31
unit_tests/expr.suite/opts.out
Normal file
31
unit_tests/expr.suite/opts.out
Normal file
|
@ -0,0 +1,31 @@
|
|||
[ -~llGetLinkNumber()
|
||||
, -~-~llGetLinkNumber()
|
||||
, 3 + llGetLinkNumber()
|
||||
, 4 + llGetLinkNumber()
|
||||
, ~-llGetLinkNumber()
|
||||
, ~-~-llGetLinkNumber()
|
||||
, ((integer)-3) + llGetLinkNumber()
|
||||
, ((integer)-4) + llGetLinkNumber()
|
||||
, 3 + llGetLinkNumber()
|
||||
, ((integer)-3) + llGetLinkNumber()
|
||||
, 5 + llGetLinkNumber()
|
||||
, ~-llGetLinkNumber()
|
||||
, ~-~-llGetLinkNumber()
|
||||
, llGetLinkNumber() == 2
|
||||
, llGetLinkNumber() + llGetLinkNumber() + llGetLinkNumber()
|
||||
, 2 < llGetLinkNumber()
|
||||
, llGetLinkNumber() < 2
|
||||
, 2 + (1 + llGetTime())
|
||||
, 11 + llGetLinkNumber()
|
||||
, 5 == llGetLinkNumber()
|
||||
, ((integer)-5) + llGetLinkNumber() == 12
|
||||
, !(((integer)-5) + llGetLinkNumber() == 12)
|
||||
, 3 + llGetLinkNumber()
|
||||
, ~llGetLinkNumber()
|
||||
, llGetLinkNumber()
|
||||
, -((~-~llGetLinkNumber()) + (~-~llGetLinkNumber()))
|
||||
, -~-~llGetLinkNumber() + (~-~-llGetLinkNumber())
|
||||
, (~-~-llGetLinkNumber()) + (~-~-llGetLinkNumber())
|
||||
, 5 + llGetLinkNumber() + (5 + llGetLinkNumber())
|
||||
, 0
|
||||
]
|
1
unit_tests/expr.suite/opts.run
Normal file
1
unit_tests/expr.suite/opts.run
Normal file
|
@ -0,0 +1 @@
|
|||
main.py -O clear,expr,optimize,constfold,optsigns -
|
111
unit_tests/expr.suite/quat-funcs.lsl
Normal file
111
unit_tests/expr.suite/quat-funcs.lsl
Normal file
|
@ -0,0 +1,111 @@
|
|||
[ llRot2Fwd(<1,0,0,0>)
|
||||
, llRot2Fwd(<0,1,0,0>)
|
||||
, llRot2Fwd(<0,0,1,0>)
|
||||
, llRot2Fwd(<0,0,0,1>)
|
||||
, llRot2Fwd(<0,0,0,0>)
|
||||
, llRot2Fwd(<.5,.5,.5,.5>)
|
||||
, llRot2Fwd(<-.5,.5,.5,.5>)
|
||||
, llRot2Fwd(<.5,-.5,.5,.5>)
|
||||
, llRot2Fwd(<.5,.5,-.5,.5>)
|
||||
, llRot2Fwd(<.5,-.5,-.5,.5>)
|
||||
, llRot2Fwd(<-.5,.5,-.5,.5>)
|
||||
, llRot2Fwd(<-.5,-.5,.5,.5>)
|
||||
, llRot2Fwd(<-.5,-.5,-.5,.5>)
|
||||
, llRot2Fwd(<-.5,-.5,-.5,-.5>)
|
||||
, llRot2Fwd(<-0.16, 0.2, -0.88, 0.4>)
|
||||
, llRot2Fwd(<-16, 20, -88, 40>)
|
||||
, llRot2Left(<1,0,0,0>)
|
||||
, llRot2Left(<0,1,0,0>)
|
||||
, llRot2Left(<0,0,1,0>)
|
||||
, llRot2Left(<0,0,0,1>)
|
||||
, llRot2Left(<0,0,0,0>)
|
||||
, llRot2Left(<.5,.5,.5,.5>)
|
||||
, llRot2Left(<-.5,.5,.5,.5>)
|
||||
, llRot2Left(<.5,-.5,.5,.5>)
|
||||
, llRot2Left(<.5,.5,-.5,.5>)
|
||||
, llRot2Left(<.5,-.5,-.5,.5>)
|
||||
, llRot2Left(<-.5,.5,-.5,.5>)
|
||||
, llRot2Left(<-.5,-.5,.5,.5>)
|
||||
, llRot2Left(<-.5,-.5,-.5,.5>)
|
||||
, llRot2Left(<-.5,-.5,-.5,-.5>)
|
||||
, llRot2Left(<-0.16, 0.2, -0.88, 0.4>)
|
||||
, llRot2Left(<-16, 20, -88, 40>)
|
||||
, llRot2Up(<1,0,0,0>)
|
||||
, llRot2Up(<0,1,0,0>)
|
||||
, llRot2Up(<0,0,1,0>)
|
||||
, llRot2Up(<0,0,0,1>)
|
||||
, llRot2Up(<0,0,0,0>)
|
||||
, llRot2Up(<.5,.5,.5,.5>)
|
||||
, llRot2Up(<-.5,.5,.5,.5>)
|
||||
, llRot2Up(<.5,-.5,.5,.5>)
|
||||
, llRot2Up(<.5,.5,-.5,.5>)
|
||||
, llRot2Up(<.5,-.5,-.5,.5>)
|
||||
, llRot2Up(<-.5,.5,-.5,.5>)
|
||||
, llRot2Up(<-.5,-.5,.5,.5>)
|
||||
, llRot2Up(<-.5,-.5,-.5,.5>)
|
||||
, llRot2Up(<-.5,-.5,-.5,-.5>)
|
||||
, llRot2Up(<-0.16, 0.2, -0.88, 0.4>)
|
||||
, llRot2Up(<-16, 20, -88, 40>)
|
||||
, llAngleBetween(<0.58, 0.26, 0.22, -0.74>, <-0.62, -0.34, 0.7, 0.1>)
|
||||
, llAngleBetween(<0.58, 0.26, 0.22, -0.74>, <0,0,0,0>)
|
||||
, llAngleBetween(<0, 0, 1, 0>, <0,0,0,0>)
|
||||
, llAngleBetween(<1, 1, 1, 1>, <0,1,1,1>)
|
||||
, llAxes2Rot(<0,0,0>,<0,0,0>,<0,0,0>)
|
||||
, llAxes2Rot(<0.00000001,0,0>,<0,0,0>,<0,0,0>)
|
||||
, llAxes2Rot(<-0.00000001,0,0>,<0,0,0>,<0,0,0>)
|
||||
, llAxes2Rot(<-0.00000001,0,0>,<0,-1,0>,<0,0,0>)
|
||||
, llAxes2Rot(<0,0,0>,<0,1,0>,<0,0,1>)
|
||||
, llAxes2Rot(<1,0,0>,<0,1,0>,<0,0,1>)
|
||||
, llAxes2Rot(<1,0,0>,<0,-1,0>,<0,0,-1>)
|
||||
, "********"
|
||||
, llAxisAngle2Rot(<0,0,0>,0) // invalid vector
|
||||
, llAxisAngle2Rot(<0,0,0>,PI)
|
||||
, llAxisAngle2Rot(<0,0,1>,0)
|
||||
, llAxisAngle2Rot(<0,0,1>,1)
|
||||
, llAxisAngle2Rot(<3,4,2>,1) // non-normalized
|
||||
, llRot2Euler(<0,1,0,1>) // Singularity
|
||||
, llRot2Euler(<0.5,0.5,0.5,0.5000005>) // Singularity, and special case
|
||||
, llRot2Euler(<0,0,0,0>)
|
||||
, llEuler2Rot(<1,2,3>)
|
||||
, llEuler2Rot(<1,2,-3>)
|
||||
, llEuler2Rot(<1,-2,3>)
|
||||
, llEuler2Rot(<1,-2,-3>)
|
||||
, llEuler2Rot(<-1,2,3>)
|
||||
, llEuler2Rot(<-1,2,-3>)
|
||||
, llEuler2Rot(<-1,-2,3>)
|
||||
, llEuler2Rot(<-1,-2,-3>)
|
||||
, llEuler2Rot(<1,3,2>)
|
||||
, llEuler2Rot(<2,1,3>)
|
||||
, llEuler2Rot(<2,3,1>)
|
||||
, llEuler2Rot(<3,1,2>)
|
||||
, llEuler2Rot(<3,2,1>)
|
||||
, llEuler2Rot(<-2.395147, 0.006141, -1.193234>)
|
||||
, llEuler2Rot(<3.139854, 1.517441, 1.255878>)
|
||||
, llEuler2Rot(<0.04639, -2.645807, 0.33886>)
|
||||
, llEuler2Rot(<-1.422952, -2.752072, 2.961577>)
|
||||
, llEuler2Rot(<1.279703, 2.996797, -2.377522>)
|
||||
, llEuler2Rot(<-2.128544, -2.863647, -1.894819>)
|
||||
, llEuler2Rot(<1.857047, -1.549855, -2.276513>)
|
||||
, llEuler2Rot(<1.716022, 2.143527, -0.121504>)
|
||||
, llRot2Axis(<0,0,0,0>)
|
||||
, llRot2Axis(<0,0,0,1>)
|
||||
, llRot2Axis(<1,1,1,1>)
|
||||
, llRot2Axis(<-0.78, 0.54, 0.18, 0.26>)
|
||||
, llRot2Axis(<78, -54, -18, -26>)
|
||||
, llRot2Axis(<-.48, .6, .64, 1.>)
|
||||
|
||||
, llRotBetween(<1,0,0>, <0,1,0>) // <0., 0., 0.707107, 0.707107>
|
||||
, llRotBetween(<1,0,0>, <0,0,1>) // <0., -0.707107, 0., 0.707107>
|
||||
, llRotBetween(<0,1,0>, <0,0,1>) // <0.707107, 0., 0., 0.707107>
|
||||
|
||||
, llRotBetween(<1,1,0>, <-1,-1,0>) // <0.707107, -0.707107, 0., 0.>
|
||||
, llRotBetween(<1,0,1>, <-1,0,-1>) // <0.707107, 0., -0.707107, 0.>
|
||||
, llRotBetween(<0,1,1>, <0,-1,-1>) // <1., 0., 0., 0.>
|
||||
|
||||
, llRotBetween(<1,0,0>, <-2,0,0>) // <0., 0., 1., 0.>
|
||||
, llRotBetween(<0,1,0>, <0,-2,0>) // <1., 0., 0., 0.>
|
||||
, llRotBetween(<0,0,1>, <0,0,-2>) // <1., 0., 0., 0.>
|
||||
|
||||
, llRotBetween(<1,0,0>, <2,0,0>) // <0., 0., 0., 1.>
|
||||
, llRotBetween(<1,2,3>, <-1,-2,-3>) // <0.963624, -0.14825, -0.222375, 0.>
|
||||
]
|
107
unit_tests/expr.suite/quat-funcs.out
Normal file
107
unit_tests/expr.suite/quat-funcs.out
Normal file
|
@ -0,0 +1,107 @@
|
|||
[ <1., 0., 0.>
|
||||
, <-1., 0., 0.>
|
||||
, <-1., 0., 0.>
|
||||
, <1., 0., 0.>
|
||||
, <1., 0., 0.>
|
||||
, <0., 1., 0.>
|
||||
, <0., 0., -1.>
|
||||
, <0., 0., 1.>
|
||||
, <0., 0., -1.>
|
||||
, <0., -1., 0.>
|
||||
, <0., -1., 0.>
|
||||
, <0., 1., 0.>
|
||||
, <0., 0., 1.>
|
||||
, <0., 1., 0.>
|
||||
, <-0.6288, -0.768, 0.12159999>
|
||||
, <-0.6288, -0.768, 0.1216>
|
||||
, <0., -1., 0.>
|
||||
, <0., 1., 0.>
|
||||
, <0., -1., 0.>
|
||||
, <0., 1., 0.>
|
||||
, <0., 1., 0.>
|
||||
, <0., 0., 1.>
|
||||
, <-1., 0., 0.>
|
||||
, <-1., 0., 0.>
|
||||
, <1., 0., 0.>
|
||||
, <0., 0., 1.>
|
||||
, <0., 0., -1.>
|
||||
, <0., 0., -1.>
|
||||
, <1., 0., 0.>
|
||||
, <0., 0., 1.>
|
||||
, <0.64, -0.59999996, -0.48>
|
||||
, <0.64, -0.6, -0.48>
|
||||
, <0., 0., -1.>
|
||||
, <0., 0., -1.>
|
||||
, <0., 0., 1.>
|
||||
, <0., 0., 1.>
|
||||
, <0., 0., 1.>
|
||||
, <1., 0., 0.>
|
||||
, <0., 1., 0.>
|
||||
, <0., -1., 0.>
|
||||
, <0., -1., 0.>
|
||||
, <-1., 0., 0.>
|
||||
, <1., 0., 0.>
|
||||
, <-1., 0., 0.>
|
||||
, <0., 1., 0.>
|
||||
, <1., 0., 0.>
|
||||
, <0.4416, -0.224, 0.8688>
|
||||
, <0.4416, -0.224, 0.8688>
|
||||
, 2.3878784
|
||||
, 1.475452
|
||||
, 3.1415927
|
||||
, 1.0471976
|
||||
, <1., 0., 0., 0.>
|
||||
, <0., 0., 0., 0.5>
|
||||
, <0., 1., 0., 0.>
|
||||
, <0., 0., 1., 0.>
|
||||
, <0., 0., 0., 0.8660254>
|
||||
, <0., 0., 0., 1.>
|
||||
, <1., 0., 0., 0.>
|
||||
, "********"
|
||||
, <0., 0., 0., 1.>
|
||||
, <0., 0., 0., 1.>
|
||||
, <0., 0., 0., 1.>
|
||||
, <0., 0., 0.47942554, 0.87758255>
|
||||
, <0.26708126, 0.35610833, 0.17805417, 0.87758255>
|
||||
, <0., 1.5707962, 0.>
|
||||
, <0., 1.5707964, 1.5707964>
|
||||
, <0., 0., 0.>
|
||||
, <0.7549338, -0.20614922, 0.5015091, -0.36887136>
|
||||
, <0.718287, -0.31062245, 0.44443511, -0.43595284>
|
||||
, <0.718287, 0.31062245, -0.44443511, -0.43595284>
|
||||
, <0.7549338, 0.20614922, -0.5015091, -0.36887136>
|
||||
, <0.718287, 0.31062245, 0.44443511, 0.43595284>
|
||||
, <0.7549338, 0.20614922, 0.5015091, 0.36887136>
|
||||
, <0.7549338, -0.20614922, -0.5015091, 0.36887136>
|
||||
, <0.718287, -0.31062245, -0.44443511, 0.43595284>
|
||||
, <0.7549338, 0.44443511, 0.31062245, -0.36887136>
|
||||
, <-0.31062245, 0.718287, -0.5015091, 0.36887136>
|
||||
, <0.31062245, 0.44443511, 0.7549338, -0.36887136>
|
||||
, <-0.5015091, 0.718287, -0.31062245, 0.36887136>
|
||||
, <0.5015091, -0.20614922, 0.7549338, -0.36887136>
|
||||
, <0.7709168, 0.5222393, 0.20722392, -0.30001938>
|
||||
, <0.5876303, -0.42585864, 0.5571223, -0.40367043>
|
||||
, <0.15781294, 0.9562529, -0.019199894, -0.24557461>
|
||||
, <0.7514303, -0.059062503, -0.203569, 0.624839>
|
||||
, <-0.7263019, 0.33835446, 0.16817036, 0.57421296>
|
||||
, <0.31937572, -0.37883684, 0.451, 0.7423482>
|
||||
, <-0.62032556, -0.34373307, 0.6234085, 0.3292501>
|
||||
, <0.32653406, 0.59511566, 0.6440529, 0.35271614>
|
||||
, <0., 0., 0.>
|
||||
, <0., 0., 0.>
|
||||
, <0.57735025, 0.57735025, 0.57735025>
|
||||
, <-0.8077807, 0.55923283, 0.18641093>
|
||||
, <-0.8077807, 0.5592328, 0.18641093>
|
||||
, <-0.48, 0.6, 0.64>
|
||||
, <0., 0., 0.70710676, 0.70710676>
|
||||
, <0., -0.70710676, 0., 0.70710676>
|
||||
, <0.70710676, 0., 0., 0.70710676>
|
||||
, <0.70710676, -0.70710676, 0., 0.>
|
||||
, <0.70710676, 0., -0.70710676, 0.>
|
||||
, <1., 0., 0., 0.>
|
||||
, <0., 0., 1., 0.>
|
||||
, <1., 0., 0., 0.>
|
||||
, <1., 0., 0., 0.>
|
||||
, <0., 0., 0., 1.>
|
||||
, <0.9636241, -0.14824985, -0.2223748, 0.>
|
||||
]
|
104
unit_tests/expr.suite/s-to-b64-to-s.lsl
Normal file
104
unit_tests/expr.suite/s-to-b64-to-s.lsl
Normal file
|
@ -0,0 +1,104 @@
|
|||
[ llStringToBase64("𝄞Áañ# +")
|
||||
, llStringToBase64("")
|
||||
, llBase64ToString("8J2EnsOBYcOxIyAr")
|
||||
, llBase64ToString("")
|
||||
, llBase64ToString("1")
|
||||
, llBase64ToString("12")
|
||||
, llBase64ToString("14A")
|
||||
// Embedded and trailing NUL tests
|
||||
, llBase64ToString("QUJDAERFRg") // 'ABC\x00DEF'
|
||||
, llBase64ToString("AEEAQgBD") // '\x00A\x00B\x00C'
|
||||
, llBase64ToString("AEEAQgBDAA") // '\x00A\x00B\x00C\x00'
|
||||
, llBase64ToString("AEEAQgBDAAA=") // '\x00A\x00B\x00C\x00\x00'
|
||||
// Miscellaneous tests
|
||||
, llBase64ToString("gIAA")
|
||||
, llBase64ToString("gAA")
|
||||
, llBase64ToString("44AA")
|
||||
, llBase64ToString("4IAh")
|
||||
, llBase64ToString("gICAgGE")
|
||||
, llBase64ToString("QQA")
|
||||
, llBase64ToString("AEE=")
|
||||
, llBase64ToString("wKE")
|
||||
, llBase64ToString("9ICA")
|
||||
, llBase64ToString("94CAgICA")
|
||||
, llBase64ToString("4ICA")
|
||||
, llBase64ToString("4IA")
|
||||
, llUnescapeURL("%E0%80") // compare the result with the above's (extra "?")
|
||||
|
||||
// Invalid characters tests
|
||||
, llBase64ToString("w4GA44HDgEFCQ9M") // C3 81 80 E3 81 C3 80 41 42 43 D3
|
||||
, llBase64ToString("w4GA44HDgEFCQwDT") // C3 81 80 E3 81 C3 80 41 42 43 00 D3
|
||||
, llBase64ToString("4ICAgICAgOOBw4BBQkMA0w") // E0 80 80 80 80 80 80 E3 81 C3 80 41 42 43 00 D3
|
||||
|
||||
// Test all UTF-8 ranges
|
||||
// Normal ASCII range
|
||||
, llBase64ToString("AHg") // 00 78
|
||||
, llBase64ToString("AXg") // 01 78
|
||||
, llBase64ToString("f3g") // 7F 78
|
||||
, llBase64ToString("AQIDBAUGBwgJCgsMDQ4P") // 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
, llBase64ToString("EBESExQVFhcYGRobHB0eHw") // 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
|
||||
|
||||
// Invalid range (characters used for 2nd position and on)
|
||||
, llBase64ToString("gIB4") // 80 80 78
|
||||
, llBase64ToString("v794") // BF BF 78
|
||||
// Aliased range U+0000 - U+007F
|
||||
, llBase64ToString("wIB4") // C0 80 78
|
||||
, llBase64ToString("wb94") // C1 BF 78
|
||||
// Valid U+0080 - U+07FF
|
||||
, llBase64ToString("woB4") // C2 80 78
|
||||
, llBase64ToString("3794") // DF BF 78
|
||||
// Aliased range U+0000 - U+07FF
|
||||
, llBase64ToString("4ICAeA") // E0 80 80 78
|
||||
, llBase64ToString("4J+/eA") // E0 9F BF 78
|
||||
// Valid U+0800 - U+D7FF
|
||||
, llBase64ToString("4KCAeA") // E0 A0 80 78
|
||||
, llBase64ToString("7Z+/eA") // ED 9F BF 78
|
||||
// UTF-16 surrogates area
|
||||
// High surrogates U+D800 - U+DBFF
|
||||
, llBase64ToString("7aCAeA") // ED A0 80 78
|
||||
, llBase64ToString("7a+/eA") // ED AF BF 78
|
||||
// Low surrogates U+DC00 - U+DFFF
|
||||
, llBase64ToString("7bCAeA") // ED B0 80 78
|
||||
, llBase64ToString("7b+/eA") // ED BF BF 78
|
||||
// Valid U+E000 - U+FFFF
|
||||
, llBase64ToString("7oCAeA") // EE 80 80 78
|
||||
, llBase64ToString("77+/eA") // EF BF BF 78
|
||||
// Aliased range U+0000 - U+FFFF
|
||||
, llBase64ToString("8ICAgHg") // F0 80 80 80 78
|
||||
, llBase64ToString("8I+/v3g") // F0 8F BF BF 78
|
||||
// Valid range U+10000 - U+10FFFF
|
||||
, llBase64ToString("8JCAgHg") // F0 90 80 80 78
|
||||
, llBase64ToString("9I+/v3g") // F4 8F BF BF 78
|
||||
// Out of range U+110000 - U + 1FFFFF
|
||||
, llBase64ToString("9JCAgHg") // F4 90 80 80 78
|
||||
, llBase64ToString("97+/v3g") // F7 BF BF BF 78
|
||||
// Aliased range U+0000 - U+1FFFFF
|
||||
, llBase64ToString("+ICAgIB4") // F8 80 80 80 80 78
|
||||
, llBase64ToString("+Ie/v794") // F8 87 BF BF BF 78
|
||||
// Out of range U+200000 - U+3FFFFFF
|
||||
, llBase64ToString("+IiAgIB4") // F8 88 80 80 80 78
|
||||
, llBase64ToString("+7+/v794") // FB BF BF BF BF 78
|
||||
// Aliased range U+0000 - U+3FFFFFF
|
||||
, llBase64ToString("/ICAgICAeA") // FC 80 80 80 80 80 78
|
||||
, llBase64ToString("/IO/v7+/eA") // FC 83 BF BF BF BF 78
|
||||
// Out of range U+4000000 - U+7FFFFFFF
|
||||
, llBase64ToString("/ISAgICAeA") // FC 84 80 80 80 80 78
|
||||
, llBase64ToString("/b+/v7+/eA") // FD BF BF BF BF BF 78
|
||||
// Invalid in UTF-8 (used for UTF-16 BOM)
|
||||
, llBase64ToString("/rCAgICAgIB4") // FE B0 80 80 80 80 80 80 78
|
||||
, llBase64ToString("/7+/v7+/v794") // FF BF BF BF BF BF BF BF 78
|
||||
// Short or invalid sequences
|
||||
, llBase64ToString("gA") // 80
|
||||
, llBase64ToString("vw") // BF
|
||||
, llBase64ToString("wg") // C2
|
||||
, llBase64ToString("4Q") // E1
|
||||
, llBase64ToString("4YA") // E1 80
|
||||
, llBase64ToString("8Q") // F1
|
||||
, llBase64ToString("8YA") // F1 80
|
||||
, llBase64ToString("8YCA") // F1 80 80
|
||||
, llBase64ToString("+ICAgA") // F8 80 80 80
|
||||
, llBase64ToString("+IiAgA") // F8 88 80 80
|
||||
, llBase64ToString("/ICAgIA") // FC 80 80 80 80
|
||||
, llBase64ToString("/ISAgIA") // FC 84 80 80 80
|
||||
, llBase64ToString("77+9kA") // EF BF BD 90
|
||||
]
|
78
unit_tests/expr.suite/s-to-b64-to-s.out
Normal file
78
unit_tests/expr.suite/s-to-b64-to-s.out
Normal file
|
@ -0,0 +1,78 @@
|
|||
[ "8J2EnsOBYcOxIyAr"
|
||||
, ""
|
||||
, "𝄞Áañ# +"
|
||||
, ""
|
||||
, ""
|
||||
, "?"
|
||||
, "׀"
|
||||
, "ABC?DEF"
|
||||
, "?A?B?C"
|
||||
, "?A?B?C"
|
||||
, "?A?B?C?"
|
||||
, "??"
|
||||
, "?"
|
||||
, "?"
|
||||
, "?!"
|
||||
, "????a"
|
||||
, "A"
|
||||
, "?A"
|
||||
, "?"
|
||||
, "?"
|
||||
, "??????"
|
||||
, "?"
|
||||
, "?"
|
||||
, "??"
|
||||
, "Á??ÀABC?"
|
||||
, "Á??ÀABC??"
|
||||
, "??????ÀABC??"
|
||||
, "?x"
|
||||
, "?x"
|
||||
, "x"
|
||||
, "???????? \n????"
|
||||
, "???????????????"
|
||||
, "??x"
|
||||
, "??x"
|
||||
, "?x"
|
||||
, "?x"
|
||||
, "x"
|
||||
, "߿x"
|
||||
, "?x"
|
||||
, "?x"
|
||||
, "ࠀx"
|
||||
, "x"
|
||||
, "???x"
|
||||
, "???x"
|
||||
, "???x"
|
||||
, "???x"
|
||||
, "x"
|
||||
, "x"
|
||||
, "?x"
|
||||
, "?x"
|
||||
, "𐀀x"
|
||||
, "x"
|
||||
, "????x"
|
||||
, "????x"
|
||||
, "?x"
|
||||
, "?x"
|
||||
, "?????x"
|
||||
, "?????x"
|
||||
, "?x"
|
||||
, "?x"
|
||||
, "??????x"
|
||||
, "??????x"
|
||||
, "????????x"
|
||||
, "????????x"
|
||||
, "?"
|
||||
, "?"
|
||||
, "?"
|
||||
, "?"
|
||||
, "?"
|
||||
, "?"
|
||||
, "?"
|
||||
, "?"
|
||||
, "?"
|
||||
, "?"
|
||||
, "?"
|
||||
, "?"
|
||||
, "<22>?"
|
||||
]
|
1
unit_tests/expr.suite/s-to-b64-to-s.run
Normal file
1
unit_tests/expr.suite/s-to-b64-to-s.run
Normal file
|
@ -0,0 +1 @@
|
|||
main.py -O clear,optimize,constfold,addstrings,foldtabs,expr -
|
33
unit_tests/expr.suite/sort.lsl
Normal file
33
unit_tests/expr.suite/sort.lsl
Normal file
|
@ -0,0 +1,33 @@
|
|||
llListSort([<1.,2.,3.,4.>,<2.,3.,4.,5.>,<5.,4.,3.,2.>,<0.,-1.,-2.,-3.>,
|
||||
<4.,3.,2.,1.>,<3.,2.,1.,0.>],1,0)
|
||||
+ "********"
|
||||
+ llListSort([<1.,2.,3.,4.>,<2.,3.,4.,5.>,<5.,4.,3.,2.>,<0.,-1.,-2.,-3.>,
|
||||
<4.,3.,2.,1.>,<3.,2.,1.,0.>],1,1)
|
||||
+ "********"
|
||||
+ llListSort([<1.,0.,0.>,<0.,3.,0.>,<0.,0.,1.>,<3.,0.,0.>],1,1)
|
||||
+ "********"
|
||||
+ llListSort([2,0,1,1,2,2,2,3,2,4,1,5,2,6], 2, 1)
|
||||
+ "********"
|
||||
+ llListSort([2,0,1,1,2,2,2,3,2,4,1,5,2,6], 2, 0)
|
||||
+ "********"
|
||||
+ llListSort([2,0,1,1,2,2,2,3,2,4,1,5,2,6,3], 2, 1)
|
||||
+ "********"
|
||||
// NaN in sort behaves strangely. Also when inside vectors.
|
||||
+ llListSort([-1., 9., 3., 2., (float)"NaN", 5., 1.],1,1)
|
||||
+ "********"
|
||||
+ llListSort([<2.,0.,0.>,<1.,(float)"NaN",0.>],1,1)
|
||||
+ "********"
|
||||
+ llListSort([<1.,(float)"NaN",0.>,<2.,0.,0.>],1,1)
|
||||
+ "********"
|
||||
+ llListSort([<2.,0.,0.>,<1.,(float)"NaN",0.>],1,0)
|
||||
+ "********"
|
||||
+ llListSort([<1.,(float)"NaN",0.>,<2.,0.,0.>],1,0)
|
||||
+ "********"
|
||||
// This proves that it does not sort by UTF-16 words, but by code points.
|
||||
// Otherwise u"\U0001d41a" would be before u"\ufb01" (because the UTF-16
|
||||
// of u"\U0001d41a" is 0xD835 0xDC1A)
|
||||
+ llListSort(["fi","á", "𝐚", "a"],1,1)
|
||||
+ "********"
|
||||
+ llListSort([2, "B", "C", 3, 1, "A"], 1, TRUE)
|
||||
+ "********"
|
||||
+ llListSort([2, "B", "C", 3, 1, "A"], 1, FALSE)
|
104
unit_tests/expr.suite/sort.out
Normal file
104
unit_tests/expr.suite/sort.out
Normal file
|
@ -0,0 +1,104 @@
|
|||
[ <3., 2., 1., 0.>
|
||||
, <4., 3., 2., 1.>
|
||||
, <0., -1., -2., -3.>
|
||||
, <5., 4., 3., 2.>
|
||||
, <2., 3., 4., 5.>
|
||||
, <1., 2., 3., 4.>
|
||||
, "********"
|
||||
, <1., 2., 3., 4.>
|
||||
, <2., 3., 4., 5.>
|
||||
, <5., 4., 3., 2.>
|
||||
, <0., -1., -2., -3.>
|
||||
, <4., 3., 2., 1.>
|
||||
, <3., 2., 1., 0.>
|
||||
, "********"
|
||||
, <1., 0., 0.>
|
||||
, <0., 0., 1.>
|
||||
, <0., 3., 0.>
|
||||
, <3., 0., 0.>
|
||||
, "********"
|
||||
, 1
|
||||
, 1
|
||||
, 1
|
||||
, 5
|
||||
, 2
|
||||
, 2
|
||||
, 2
|
||||
, 3
|
||||
, 2
|
||||
, 4
|
||||
, 2
|
||||
, 0
|
||||
, 2
|
||||
, 6
|
||||
, "********"
|
||||
, 2
|
||||
, 6
|
||||
, 2
|
||||
, 4
|
||||
, 2
|
||||
, 3
|
||||
, 2
|
||||
, 2
|
||||
, 2
|
||||
, 0
|
||||
, 1
|
||||
, 5
|
||||
, 1
|
||||
, 1
|
||||
, "********"
|
||||
, 2
|
||||
, 0
|
||||
, 1
|
||||
, 1
|
||||
, 2
|
||||
, 2
|
||||
, 2
|
||||
, 3
|
||||
, 2
|
||||
, 4
|
||||
, 1
|
||||
, 5
|
||||
, 2
|
||||
, 6
|
||||
, 3
|
||||
, "********"
|
||||
, 1.
|
||||
, 5.
|
||||
, (-1e40*0)
|
||||
, -1.
|
||||
, 2.
|
||||
, 3.
|
||||
, 9.
|
||||
, "********"
|
||||
, <1., (-1e40*0), 0.>
|
||||
, <2., 0., 0.>
|
||||
, "********"
|
||||
, <2., 0., 0.>
|
||||
, <1., (-1e40*0), 0.>
|
||||
, "********"
|
||||
, <2., 0., 0.>
|
||||
, <1., (-1e40*0), 0.>
|
||||
, "********"
|
||||
, <1., (-1e40*0), 0.>
|
||||
, <2., 0., 0.>
|
||||
, "********"
|
||||
, "a"
|
||||
, "á"
|
||||
, "fi"
|
||||
, "𝐚"
|
||||
, "********"
|
||||
, 1
|
||||
, "A"
|
||||
, "B"
|
||||
, 2
|
||||
, 3
|
||||
, "C"
|
||||
, "********"
|
||||
, "A"
|
||||
, 3
|
||||
, 1
|
||||
, "C"
|
||||
, "B"
|
||||
, 2
|
||||
]
|
195
unit_tests/expr.suite/string-funcs.lsl
Normal file
195
unit_tests/expr.suite/string-funcs.lsl
Normal file
|
@ -0,0 +1,195 @@
|
|||
[ llInsertString("", -3, "abc")
|
||||
, llInsertString("", -1, "abc")
|
||||
, llInsertString("", 0, "abc")
|
||||
, llInsertString("", 1, "abc")
|
||||
, llInsertString("", 3, "abc")
|
||||
, llInsertString("xy", -3, "abc")
|
||||
, llInsertString("xy", -1, "abc")
|
||||
, llInsertString("xy", 0, "abc")
|
||||
, llInsertString("xy", 1, "abc")
|
||||
, llInsertString("xy", 2, "abc")
|
||||
, llInsertString("xy", 3, "abc")
|
||||
, llToUpper("AZazAZaz")
|
||||
, llToLower("AZazAZaz")
|
||||
, llToUpper("τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός")
|
||||
, llToLower("ΤΆΧΙΣΤΗ ΑΛΏΠΗΞ ΒΑΦΉΣ ΨΗΜΈΝΗ ΓΗ, ΔΡΑΣΚΕΛΊΖΕΙ ΥΠΈΡ ΝΩΘΡΟΎ ΚΥΝΌΣ")
|
||||
, llDeleteSubString("abcd", -9, -9)
|
||||
, llDeleteSubString("abcd", -9, -5)
|
||||
, llDeleteSubString("abcd", -9, -4)
|
||||
, llDeleteSubString("abcd", -9, -3)
|
||||
, llDeleteSubString("abcd", -9, -2)
|
||||
, llDeleteSubString("abcd", -9, -1)
|
||||
, llDeleteSubString("abcd", -9, 0)
|
||||
, llDeleteSubString("abcd", -9, 3)
|
||||
, llDeleteSubString("abcd", -9, 4)
|
||||
, llDeleteSubString("abcd", -9, 7)
|
||||
, llDeleteSubString("abcd", -9, 8)
|
||||
, llDeleteSubString("abcd", -9, 9)
|
||||
, llDeleteSubString("abcd", -5, -9)
|
||||
, llDeleteSubString("abcd", -5, -5)
|
||||
, llDeleteSubString("abcd", -5, -4)
|
||||
, llDeleteSubString("abcd", -5, -3)
|
||||
, llDeleteSubString("abcd", -5, -1)
|
||||
, llDeleteSubString("abcd", -5, 0)
|
||||
, llDeleteSubString("abcd", -5, 3)
|
||||
, llDeleteSubString("abcd", -5, 4)
|
||||
, llDeleteSubString("abcd", -5, 7)
|
||||
, llDeleteSubString("abcd", -5, 8)
|
||||
, llDeleteSubString("abcd", -4, -5)
|
||||
, llDeleteSubString("abcd", -4, -4)
|
||||
, llDeleteSubString("abcd", -4, -1)
|
||||
, llDeleteSubString("abcd", -4, 0)
|
||||
, llDeleteSubString("abcd", -4, 3)
|
||||
, llDeleteSubString("abcd", -4, 4)
|
||||
, llDeleteSubString("abcd", -4, 8)
|
||||
, llDeleteSubString("abcd", -2, -5)
|
||||
, llDeleteSubString("abcd", -2, -4)
|
||||
, llDeleteSubString("abcd", -2, -3)
|
||||
, llDeleteSubString("abcd", -2, -2)
|
||||
, llDeleteSubString("abcd", -2, -1)
|
||||
, llDeleteSubString("abcd", -2, 0)
|
||||
, llDeleteSubString("abcd", -2, 1)
|
||||
, llDeleteSubString("abcd", -2, 2)
|
||||
, llDeleteSubString("abcd", -2, 3)
|
||||
, llDeleteSubString("abcd", -2, 4)
|
||||
, llDeleteSubString("abcd", -2, 5)
|
||||
, llDeleteSubString("abcd", -1, -5)
|
||||
, llDeleteSubString("abcd", -1, -4)
|
||||
, llDeleteSubString("abcd", -1, -3)
|
||||
, llDeleteSubString("abcd", -1, -2)
|
||||
, llDeleteSubString("abcd", -1, -1)
|
||||
, llDeleteSubString("abcd", -1, 0)
|
||||
, llDeleteSubString("abcd", -1, 1)
|
||||
, llDeleteSubString("abcd", -1, 2)
|
||||
, llDeleteSubString("abcd", -1, 3)
|
||||
, llDeleteSubString("abcd", -1, 4)
|
||||
, llDeleteSubString("abcd", -1, 5)
|
||||
, llDeleteSubString("abcd", 0, -9)
|
||||
, llDeleteSubString("abcd", 0, -5)
|
||||
, llDeleteSubString("abcd", 0, -4)
|
||||
, llDeleteSubString("abcd", 0, -1)
|
||||
, llDeleteSubString("abcd", 0, 0)
|
||||
, llDeleteSubString("abcd", 0, 3)
|
||||
, llDeleteSubString("abcd", 0, 5)
|
||||
, llDeleteSubString("abcd", 3, -5)
|
||||
, llDeleteSubString("abcd", 3, -4)
|
||||
, llDeleteSubString("abcd", 3, -1)
|
||||
, llDeleteSubString("abcd", 3, 0)
|
||||
, llDeleteSubString("abcd", 3, 2)
|
||||
, llDeleteSubString("abcd", 3, 3)
|
||||
, llDeleteSubString("abcd", 3, 4)
|
||||
, llDeleteSubString("abcd", 3, 5)
|
||||
, llDeleteSubString("abcd", 4, -9)
|
||||
, llDeleteSubString("abcd", 4, -5)
|
||||
, llDeleteSubString("abcd", 4, -4)
|
||||
, llDeleteSubString("abcd", 4, -1)
|
||||
, llDeleteSubString("abcd", 4, 0)
|
||||
, llDeleteSubString("abcd", 4, 2)
|
||||
, llDeleteSubString("abcd", 4, 3)
|
||||
, llDeleteSubString("abcd", 4, 4)
|
||||
, llDeleteSubString("abcd", 4, 5)
|
||||
, llDeleteSubString("abcd", 9, -9)
|
||||
, llDeleteSubString("abcd", 9, -5)
|
||||
, llDeleteSubString("abcd", 9, -4)
|
||||
, llDeleteSubString("abcd", 9, -1)
|
||||
, llDeleteSubString("abcd", 9, 0)
|
||||
, llDeleteSubString("abcd", 9, 2)
|
||||
, llDeleteSubString("abcd", 9, 3)
|
||||
, llDeleteSubString("abcd", 9, 4)
|
||||
, llDeleteSubString("abcd", 9, 5)
|
||||
, llDeleteSubString("", 0, -1)
|
||||
, llGetSubString("abcd", -9, -9)
|
||||
, llGetSubString("abcd", -9, -5)
|
||||
, llGetSubString("abcd", -9, -4)
|
||||
, llGetSubString("abcd", -9, -3)
|
||||
, llGetSubString("abcd", -9, -2)
|
||||
, llGetSubString("abcd", -9, -1)
|
||||
, llGetSubString("abcd", -9, 0)
|
||||
, llGetSubString("abcd", -9, 3)
|
||||
, llGetSubString("abcd", -9, 4)
|
||||
, llGetSubString("abcd", -9, 7)
|
||||
, llGetSubString("abcd", -9, 8)
|
||||
, llGetSubString("abcd", -9, 9)
|
||||
, llGetSubString("abcd", -5, -9)
|
||||
, llGetSubString("abcd", -5, -5)
|
||||
, llGetSubString("abcd", -5, -4)
|
||||
, llGetSubString("abcd", -5, -3)
|
||||
, llGetSubString("abcd", -5, -1)
|
||||
, llGetSubString("abcd", -5, 0)
|
||||
, llGetSubString("abcd", -5, 3)
|
||||
, llGetSubString("abcd", -5, 4)
|
||||
, llGetSubString("abcd", -5, 7)
|
||||
, llGetSubString("abcd", -5, 8)
|
||||
, llGetSubString("abcd", -4, -5)
|
||||
, llGetSubString("abcd", -4, -4)
|
||||
, llGetSubString("abcd", -4, -1)
|
||||
, llGetSubString("abcd", -4, 0)
|
||||
, llGetSubString("abcd", -4, 3)
|
||||
, llGetSubString("abcd", -4, 4)
|
||||
, llGetSubString("abcd", -4, 8)
|
||||
, llGetSubString("abcd", -2, -5)
|
||||
, llGetSubString("abcd", -2, -4)
|
||||
, llGetSubString("abcd", -2, -3)
|
||||
, llGetSubString("abcd", -2, -2)
|
||||
, llGetSubString("abcd", -2, -1)
|
||||
, llGetSubString("abcd", -2, 0)
|
||||
, llGetSubString("abcd", -2, 1)
|
||||
, llGetSubString("abcd", -2, 2)
|
||||
, llGetSubString("abcd", -2, 3)
|
||||
, llGetSubString("abcd", -2, 4)
|
||||
, llGetSubString("abcd", -2, 5)
|
||||
, llGetSubString("abcd", -1, -5)
|
||||
, llGetSubString("abcd", -1, -4)
|
||||
, llGetSubString("abcd", -1, -3)
|
||||
, llGetSubString("abcd", -1, -2)
|
||||
, llGetSubString("abcd", -1, -1)
|
||||
, llGetSubString("abcd", -1, 0)
|
||||
, llGetSubString("abcd", -1, 1)
|
||||
, llGetSubString("abcd", -1, 2)
|
||||
, llGetSubString("abcd", -1, 3)
|
||||
, llGetSubString("abcd", -1, 4)
|
||||
, llGetSubString("abcd", -1, 5)
|
||||
, llGetSubString("abcd", 0, -9)
|
||||
, llGetSubString("abcd", 0, -5)
|
||||
, llGetSubString("abcd", 0, -4)
|
||||
, llGetSubString("abcd", 0, -1)
|
||||
, llGetSubString("abcd", 0, 0)
|
||||
, llGetSubString("abcd", 0, 3)
|
||||
, llGetSubString("abcd", 0, 5)
|
||||
, llGetSubString("abcd", 3, -5)
|
||||
, llGetSubString("abcd", 3, -4)
|
||||
, llGetSubString("abcd", 3, -1)
|
||||
, llGetSubString("abcd", 3, 0)
|
||||
, llGetSubString("abcd", 3, 2)
|
||||
, llGetSubString("abcd", 3, 3)
|
||||
, llGetSubString("abcd", 3, 4)
|
||||
, llGetSubString("abcd", 3, 5)
|
||||
, llGetSubString("abcd", 4, -9)
|
||||
, llGetSubString("abcd", 4, -5)
|
||||
, llGetSubString("abcd", 4, -4)
|
||||
, llGetSubString("abcd", 4, -1)
|
||||
, llGetSubString("abcd", 4, 0)
|
||||
, llGetSubString("abcd", 4, 2)
|
||||
, llGetSubString("abcd", 4, 3)
|
||||
, llGetSubString("abcd", 4, 4)
|
||||
, llGetSubString("abcd", 4, 5)
|
||||
, llGetSubString("abcd", 9, -9)
|
||||
, llGetSubString("abcd", 9, -5)
|
||||
, llGetSubString("abcd", 9, -4)
|
||||
, llGetSubString("abcd", 9, -1)
|
||||
, llGetSubString("abcd", 9, 0)
|
||||
, llGetSubString("abcd", 9, 2)
|
||||
, llGetSubString("abcd", 9, 3)
|
||||
, llGetSubString("abcd", 9, 4)
|
||||
, llGetSubString("abcd", 9, 5)
|
||||
, llGetSubString("", 0, -1)
|
||||
, llStringLength("")
|
||||
, llStringLength("÷½¬⅛⅜⅝⅞±°z")
|
||||
, llSubStringIndex("x", "blah")
|
||||
, llSubStringIndex("", "")
|
||||
, llSubStringIndex("", "x")
|
||||
, llSubStringIndex("x", "")
|
||||
, llSubStringIndex("a", "blah")
|
||||
, llStringTrim(" a\n
", STRING_TRIM)
|
||||
, llStringTrim("", STRING_TRIM)
|
||||
]
|
195
unit_tests/expr.suite/string-funcs.out
Normal file
195
unit_tests/expr.suite/string-funcs.out
Normal file
|
@ -0,0 +1,195 @@
|
|||
[ "abc"
|
||||
, "abc"
|
||||
, "abc"
|
||||
, "abc"
|
||||
, "abc"
|
||||
, "abcxy"
|
||||
, "abcxy"
|
||||
, "abcxy"
|
||||
, "xabcy"
|
||||
, "xyabc"
|
||||
, "xyabc"
|
||||
, "AZAZAZAZ"
|
||||
, "azazazaz"
|
||||
, "ΤΆΧΙΣΤΗ ΑΛΏΠΗΞ ΒΑΦΉΣ ΨΗΜΈΝΗ ΓΗ, ΔΡΑΣΚΕΛΊΖΕΙ ΥΠΈΡ ΝΩΘΡΟΎ ΚΥΝΌΣ"
|
||||
, "τάχιστη αλώπηξ βαφήσ ψημένη γη, δρασκελίζει υπέρ νωθρού κυνόσ"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "bcd"
|
||||
, "cd"
|
||||
, "d"
|
||||
, ""
|
||||
, "bcd"
|
||||
, ""
|
||||
, ""
|
||||
, ""
|
||||
, ""
|
||||
, ""
|
||||
, ""
|
||||
, "abcd"
|
||||
, "bcd"
|
||||
, "cd"
|
||||
, ""
|
||||
, "bcd"
|
||||
, ""
|
||||
, ""
|
||||
, ""
|
||||
, ""
|
||||
, ""
|
||||
, "bcd"
|
||||
, ""
|
||||
, "bcd"
|
||||
, ""
|
||||
, ""
|
||||
, ""
|
||||
, "ab"
|
||||
, "b"
|
||||
, ""
|
||||
, "abd"
|
||||
, "ab"
|
||||
, "b"
|
||||
, ""
|
||||
, "abd"
|
||||
, "ab"
|
||||
, "ab"
|
||||
, "ab"
|
||||
, "abc"
|
||||
, "bc"
|
||||
, "c"
|
||||
, ""
|
||||
, "abc"
|
||||
, "bc"
|
||||
, "c"
|
||||
, ""
|
||||
, "abc"
|
||||
, "abc"
|
||||
, "abc"
|
||||
, ""
|
||||
, ""
|
||||
, "bcd"
|
||||
, ""
|
||||
, "bcd"
|
||||
, ""
|
||||
, ""
|
||||
, "abc"
|
||||
, "bc"
|
||||
, "abc"
|
||||
, "bc"
|
||||
, ""
|
||||
, "abc"
|
||||
, "abc"
|
||||
, "abc"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "bcd"
|
||||
, ""
|
||||
, "bcd"
|
||||
, "d"
|
||||
, ""
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "bcd"
|
||||
, ""
|
||||
, "bcd"
|
||||
, "d"
|
||||
, ""
|
||||
, ""
|
||||
, ""
|
||||
, ""
|
||||
, ""
|
||||
, ""
|
||||
, "a"
|
||||
, "ab"
|
||||
, "abc"
|
||||
, "abcd"
|
||||
, "a"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, ""
|
||||
, "a"
|
||||
, "ab"
|
||||
, "abcd"
|
||||
, "a"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "a"
|
||||
, "abcd"
|
||||
, "a"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "cd"
|
||||
, "acd"
|
||||
, "abcd"
|
||||
, "c"
|
||||
, "cd"
|
||||
, "acd"
|
||||
, "abcd"
|
||||
, "c"
|
||||
, "cd"
|
||||
, "cd"
|
||||
, "cd"
|
||||
, "d"
|
||||
, "ad"
|
||||
, "abd"
|
||||
, "abcd"
|
||||
, "d"
|
||||
, "ad"
|
||||
, "abd"
|
||||
, "abcd"
|
||||
, "d"
|
||||
, "d"
|
||||
, "d"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "a"
|
||||
, "abcd"
|
||||
, "a"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "d"
|
||||
, "ad"
|
||||
, "d"
|
||||
, "ad"
|
||||
, "abcd"
|
||||
, "d"
|
||||
, "d"
|
||||
, "d"
|
||||
, ""
|
||||
, ""
|
||||
, "a"
|
||||
, "abcd"
|
||||
, "a"
|
||||
, "abc"
|
||||
, "abcd"
|
||||
, ""
|
||||
, ""
|
||||
, ""
|
||||
, ""
|
||||
, "a"
|
||||
, "abcd"
|
||||
, "a"
|
||||
, "abc"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, "abcd"
|
||||
, ""
|
||||
, 0
|
||||
, 10
|
||||
, -1
|
||||
, 0
|
||||
, -1
|
||||
, 0
|
||||
, -1
|
||||
, "a"
|
||||
, ""
|
||||
]
|
64
unit_tests/expr.suite/trig.lsl
Normal file
64
unit_tests/expr.suite/trig.lsl
Normal file
|
@ -0,0 +1,64 @@
|
|||
[ llCos((float)"NaN")
|
||||
, llCos(1e40)
|
||||
, llCos(-1e40)
|
||||
, llCos(PI)
|
||||
, llCos(1000.)
|
||||
, llCos(1000000.)
|
||||
, llCos(1000000000.)
|
||||
, llCos(-1000000000.)
|
||||
, llCos((float)"0x1.FFFFFEp+62")
|
||||
, llCos((float)"-0x1.FFFFFEp+62")
|
||||
, llList2CSV([llCos((float)"0x1p63")])
|
||||
, llList2CSV([llCos((float)"-0x1p63")])
|
||||
, llSin((float)"NaN")
|
||||
, llSin(1e40)
|
||||
, llSin(-1e40)
|
||||
, llSin(PI)
|
||||
, llSin(1000.)
|
||||
, llSin(1000000.)
|
||||
, llSin(1000000000.)
|
||||
, llSin(-1000000000.)
|
||||
, llList2CSV([llSin(1e38)])
|
||||
, llSin((float)"0x1.FFFFFEp+62")
|
||||
, llSin((float)"-0x1.FFFFFEp+62")
|
||||
, llList2CSV([llSin((float)"0x1p63")])
|
||||
, llList2CSV([llSin((float)"-0x1p63")])
|
||||
, llList2CSV([llTan(1e38)])
|
||||
, llTan(4e38)
|
||||
, llTan(PI)
|
||||
, llTan(PI_BY_TWO)
|
||||
, llTan((float)"0x1.921FB4p0")
|
||||
, llTan((float)"0x1.FFFFFEp62")
|
||||
, llTan((float)"-0x1.FFFFFEp62")
|
||||
, llList2CSV([llTan((float)"0x1p63")])
|
||||
, llList2CSV([llTan((float)"-0x1p63")])
|
||||
, llAsin(2.0)
|
||||
, llAsin(1e40*0)
|
||||
, llAsin(-1e40*0)
|
||||
, llAcos(2.0)
|
||||
, llAtan2(0.0, 0.0)
|
||||
, llAtan2(-0.0, -1.0)
|
||||
, llAtan2(0.0, -1.0)
|
||||
, llAtan2(-1e40, -1.0)
|
||||
, llAtan2(1e40, -1.0)
|
||||
, llAtan2((float)"NaN", -1.0)
|
||||
, llAtan2((float)"NaN", -0.0)
|
||||
, llAtan2((float)"NaN", 0.0)
|
||||
, llAtan2((float)"NaN", 1.0)
|
||||
, llAtan2(1e40*0, -1.0)
|
||||
, llAtan2(1e40*0, -0.0)
|
||||
, llAtan2(1e40*0, 0.0)
|
||||
, llAtan2(1e40*0, 1.0)
|
||||
, llAtan2(-1.0, (float)"NaN")
|
||||
, llAtan2(-0.0, (float)"NaN")
|
||||
, llAtan2( 0.0, (float)"NaN")
|
||||
, llAtan2( 1.0, (float)"NaN")
|
||||
, llAtan2(-1.0, 1e40*0)
|
||||
, llAtan2(-0.0, 1e40*0)
|
||||
, llAtan2( 0.0, 1e40*0)
|
||||
, llAtan2( 1.0, 1e40*0)
|
||||
, llAtan2(1e40*0, 1e40*0)
|
||||
, llAtan2(1e40*0, (float)"NaN")
|
||||
, llAtan2((float)"NaN", 1e40*0)
|
||||
, llAtan2((float)"NaN", (float)"NaN")
|
||||
]
|
64
unit_tests/expr.suite/trig.out
Normal file
64
unit_tests/expr.suite/trig.out
Normal file
|
@ -0,0 +1,64 @@
|
|||
[ (-1e40*0)
|
||||
, (1e40*0)
|
||||
, (1e40*0)
|
||||
, -1.
|
||||
, 0.56237906
|
||||
, 0.93675214
|
||||
, 0.83788716
|
||||
, 0.83788716
|
||||
, -0.9782801
|
||||
, -0.9782801
|
||||
, "9223372036854775808.000000"
|
||||
, "-9223372036854775808.000000"
|
||||
, (-1e40*0)
|
||||
, (1e40*0)
|
||||
, (1e40*0)
|
||||
, -8.742278e-08
|
||||
, 0.82687956
|
||||
, -0.3499935
|
||||
, 0.5458434
|
||||
, -0.5458434
|
||||
, "99999996802856924650656260769173209088.000000"
|
||||
, 0.20728716
|
||||
, -0.20728716
|
||||
, "9223372036854775808.000000"
|
||||
, "-9223372036854775808.000000"
|
||||
, "99999996802856924650656260769173209088.000000"
|
||||
, (1e40*0)
|
||||
, 8.742278e-08
|
||||
, -22877332.
|
||||
, 13245402.
|
||||
, -0.21188937
|
||||
, 0.21188937
|
||||
, "9223372036854775808.000000"
|
||||
, "-9223372036854775808.000000"
|
||||
, (-1e40*0)
|
||||
, (1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, 0.
|
||||
, -3.1415927
|
||||
, 3.1415927
|
||||
, -1.5707964
|
||||
, 1.5707964
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (1e40*0)
|
||||
, (1e40*0)
|
||||
, (1e40*0)
|
||||
, (1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (1e40*0)
|
||||
, (1e40*0)
|
||||
, (1e40*0)
|
||||
, (1e40*0)
|
||||
, (1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
, (-1e40*0)
|
||||
]
|
1
unit_tests/expr.suite/unicode.lsl
Normal file
1
unit_tests/expr.suite/unicode.lsl
Normal file
|
@ -0,0 +1 @@
|
|||
llUnescapeURL("a%C3%A1%FC%80%80%E8%B0%F0%A0")
|
1
unit_tests/expr.suite/unicode.out
Normal file
1
unit_tests/expr.suite/unicode.out
Normal file
|
@ -0,0 +1 @@
|
|||
"aá???????"
|
20
unit_tests/expr.suite/xorb64.lsl
Normal file
20
unit_tests/expr.suite/xorb64.lsl
Normal file
|
@ -0,0 +1,20 @@
|
|||
[ llXorBase64("𒍅", "")
|
||||
, llXorBase64("", "ABCD")
|
||||
, llXorBase64("", "?")
|
||||
, llXorBase64("AB", "?")
|
||||
, llXorBase64("AABA", "1234")
|
||||
, llXorBase64("1234", "AABA")
|
||||
, llXorBase64("BAAA", "1234")
|
||||
, llXorBase64("1234", "BAAA")
|
||||
, llXorBase64("AABA", "AABA")
|
||||
, llXorBase64("AABA", "AABC")
|
||||
, llXorBase64("AABC", "AABA")
|
||||
, llXorBase64("Hello, World!", "XYZXYZ")
|
||||
, llXorBase64("QG8y", "XYZXYZ")
|
||||
, llXorBase64("ABCDABCDABCD", "ABCD") // Vulnerable to BUG-3763
|
||||
, llXorBase64("ABCDABCDABCDABCDABCDABCDABCD", "ABCD") // Vulnerable to BUG-3763
|
||||
, llXorBase64("ABCDABCDABCD", "ABC=") // Vulnerable to BUG-3763
|
||||
, llXorBase64("Stuffs not b64 <^.^>!", "AA==")
|
||||
, llXorBase64("ABCDABCDABCD", "Stuffs not b64 <^.^>!")
|
||||
, llXorBase64("AQCDAQCD", "AQC=")
|
||||
]
|
20
unit_tests/expr.suite/xorb64.out
Normal file
20
unit_tests/expr.suite/xorb64.out
Normal file
|
@ -0,0 +1,20 @@
|
|||
[ "𒍅"
|
||||
, ""
|
||||
, ""
|
||||
, "AA=="
|
||||
, "1224"
|
||||
, "1224"
|
||||
, "0234"
|
||||
, "0234"
|
||||
, "AAAA"
|
||||
, "AAAC"
|
||||
, "AAAC"
|
||||
, "QG8y"
|
||||
, "Hell"
|
||||
, "AAAAAAAAAAAA"
|
||||
, "AAAAAAAAAAAAAAAAAAAAAAAAAAAA"
|
||||
, "AACDEBCTAACD"
|
||||
, "Stuffg=="
|
||||
, "SsscflpYn27J"
|
||||
, "AACCAQGD"
|
||||
]
|
34
unit_tests/expr.suite/xorb64sc.lsl
Normal file
34
unit_tests/expr.suite/xorb64sc.lsl
Normal file
|
@ -0,0 +1,34 @@
|
|||
[ llXorBase64StringsCorrect("𒍅", "")
|
||||
, llXorBase64StringsCorrect("", "ABCD")
|
||||
, llXorBase64StringsCorrect("", "?")
|
||||
, llXorBase64StringsCorrect("AB", "?")
|
||||
, llXorBase64StringsCorrect("AABA", "1234")
|
||||
, llXorBase64StringsCorrect("1234", "AABA")
|
||||
, llXorBase64StringsCorrect("BAAA", "1234")
|
||||
, llXorBase64StringsCorrect("1234", "BAAA")
|
||||
, llXorBase64StringsCorrect("AABA", "AABA")
|
||||
, llXorBase64StringsCorrect("AABA", "AABC")
|
||||
, llXorBase64StringsCorrect("AABC", "AABA")
|
||||
, llXorBase64StringsCorrect("Hello, World!", "XYZXYZ")
|
||||
, llXorBase64StringsCorrect("QG8y", "XYZXYZ")
|
||||
, llXorBase64StringsCorrect("ABCDABCDABCDABCDABCDABCDABCD", "ABCD")
|
||||
, llXorBase64StringsCorrect("BCDABCDABCDABCDABCDABCDABCDA", "BCDA")
|
||||
, llXorBase64StringsCorrect("ABCD", "ABCD")
|
||||
, llXorBase64StringsCorrect("ABCDABCDABCD", "ABCD")
|
||||
, llXorBase64StringsCorrect("AACD", "AACD")
|
||||
, llXorBase64StringsCorrect("AQCD", "AQCD")
|
||||
, llXorBase64StringsCorrect("AQCDAQCD", "AQC=")
|
||||
, llXorBase64StringsCorrect("AQCDAQCD", "AQCD")
|
||||
, llXorBase64StringsCorrect("ACCD", "AC==")
|
||||
, llXorBase64StringsCorrect("ABCD", "AB==")
|
||||
, llXorBase64StringsCorrect("ABCD", "ABC=")
|
||||
, llXorBase64StringsCorrect("APCD", "APC=")
|
||||
, llXorBase64StringsCorrect("AQCD", "AQC=")
|
||||
, llXorBase64StringsCorrect("ACCD", "ABC=")
|
||||
, llXorBase64StringsCorrect("ARCD", "ARC=")
|
||||
, llXorBase64StringsCorrect("ABCDABCDABCDABCDABCDABCDABCD", "AB==")
|
||||
, llXorBase64StringsCorrect("ABCDABCDABCDABCDABCDABCDABCD", "AQ==")
|
||||
, llXorBase64StringsCorrect("ABCDABCDABCDABCDABCDABCDABCD", "ABCDAP//")
|
||||
, llXorBase64StringsCorrect("ABCDABCDABCD", "ABC=")
|
||||
, llXorBase64StringsCorrect("AQCDAQCD", "AQC=")
|
||||
]
|
34
unit_tests/expr.suite/xorb64sc.out
Normal file
34
unit_tests/expr.suite/xorb64sc.out
Normal file
|
@ -0,0 +1,34 @@
|
|||
[ "𒍅"
|
||||
, ""
|
||||
, ""
|
||||
, "AA=="
|
||||
, "1224"
|
||||
, "1234"
|
||||
, "0234"
|
||||
, "02n8"
|
||||
, "AABA"
|
||||
, "AABA"
|
||||
, "AABC"
|
||||
, "QG8y"
|
||||
, "Hell"
|
||||
, "AAAAAAAAAAAAAAAAAAAAAAAAAAAA"
|
||||
, "AAAAAAAAAAAAAAAAAAAAAAAAAAAA"
|
||||
, "AAAA"
|
||||
, "AAAAAAAAAAAA"
|
||||
, "AACD"
|
||||
, "AAGC"
|
||||
, "AAGCAAGC"
|
||||
, "AAGCAAGC"
|
||||
, "ACCD"
|
||||
, "ABCD"
|
||||
, "AACD"
|
||||
, "AACD"
|
||||
, "AAGC"
|
||||
, "ADCD"
|
||||
, "AACC"
|
||||
, "ABCDABCDABCDABCDABCDABCDABCD"
|
||||
, "ARGCARGCARGCARGCARGCARGCARGC"
|
||||
, "AAAAAAAAAAAAAAAAAAAAAAAAAAAA"
|
||||
, "AACDEBCTAACD"
|
||||
, "AAGCAAGC"
|
||||
]
|
43
unit_tests/expr.suite/xorb64str.lsl
Normal file
43
unit_tests/expr.suite/xorb64str.lsl
Normal file
|
@ -0,0 +1,43 @@
|
|||
[ llXorBase64Strings("𒍅", "")
|
||||
, llXorBase64Strings("", "")
|
||||
, llXorBase64Strings("Hello, World", "")
|
||||
, llXorBase64Strings("AAAAA==AAAAA=", "_X")
|
||||
, llXorBase64Strings("AAAAAA......AAAAAAA", "BCDEFG=====")
|
||||
, llXorBase64Strings("AAAAA===AAAAAAAAAAA", "BCDEF")
|
||||
, llXorBase64Strings("Hello, World!", "A")
|
||||
, llXorBase64Strings("Hello, World!", "A=")
|
||||
, llXorBase64Strings("Hello, World!", "A?")
|
||||
, llXorBase64Strings("Hello, World!", "A?A")
|
||||
, llXorBase64Strings("Hello, World!", "+")
|
||||
, llXorBase64Strings("Hello, World!", "++")
|
||||
, llXorBase64Strings("Hello, World!", "=")
|
||||
, llXorBase64Strings("Hello, World!", "+=")
|
||||
, llXorBase64Strings("Hello, World!", "+?")
|
||||
, llXorBase64Strings("Hello, World!", "+??")
|
||||
, llXorBase64Strings("Hello, World!", "+???")
|
||||
, llXorBase64Strings("Hello, World!", "+????")
|
||||
, llXorBase64Strings("Hello, World!", "+?????")
|
||||
, llXorBase64Strings("Hello, World!", "+???????")
|
||||
, llXorBase64Strings("Hello, World!", "/")
|
||||
, llXorBase64Strings("Hello, World!", "//")
|
||||
, llXorBase64Strings("Hello, World!", "^")
|
||||
, llXorBase64Strings("Hello, World!", ".")
|
||||
, llXorBase64Strings("Hello, World!", "_")
|
||||
, llXorBase64Strings("Hello, World!", "_XX")
|
||||
, llXorBase64Strings("Hello, World!", "XYZ")
|
||||
, llXorBase64Strings("Hello, World!", "XYZ?")
|
||||
, llXorBase64Strings("Hello, World!", "XYZXYZ")
|
||||
, llXorBase64Strings("Hello, World!", "XYZXYZ==")
|
||||
, llXorBase64Strings("AAAAA===AAAAAAAAAAA", "BCDEF")
|
||||
, llXorBase64Strings("AAAAA===AAAAAAAAAAA", "BCDEF=")
|
||||
, llXorBase64Strings("AAAAA===AAAAAAAAAAA", "BCDEF==")
|
||||
, llXorBase64Strings("AAAAA===AAAAAAAAAAA", "BCDEF===")
|
||||
, llXorBase64Strings("AA_AAA______AAAAAAAAAAAAA", "BC=EFG==")
|
||||
, llXorBase64Strings("AA_AAA______AAAAAA=AAAAAA", "BC=EFG==")
|
||||
, llXorBase64Strings("AAAAA==AAAAA", "_XXXXXXX")
|
||||
, llXorBase64Strings("ABCDABCDABCDABCDABCDABCDABCD", "ABCD")
|
||||
, llXorBase64Strings("BCDABCDABCDABCDABCDABCDABCDA", "BCDA")
|
||||
, llXorBase64Strings("AA_AAA______AAAAAAAAAAAAA", "=5gbbW==oWVbj=")
|
||||
, llXorBase64Strings("ABCDABCDABCD", "ABC=")
|
||||
, llXorBase64Strings("AQCDAQCD", "AQC=")
|
||||
]
|
43
unit_tests/expr.suite/xorb64str.out
Normal file
43
unit_tests/expr.suite/xorb64str.out
Normal file
|
@ -0,0 +1,43 @@
|
|||
[ "𒍅"
|
||||
, ""
|
||||
, "Hello, World"
|
||||
, "/X/X/==X/X/X="
|
||||
, "BCDEFG======CDEFGBC"
|
||||
, "BCDEF===EFBCDEFBCDE"
|
||||
, "Hello==World="
|
||||
, "Hello==World="
|
||||
, "Hello==World="
|
||||
, "Hello==World="
|
||||
, "5gbbW==oWVbj="
|
||||
, "5gbbW==oWVbj="
|
||||
, "5gbbW==oWVbj="
|
||||
, "5gbbW==oWVbj="
|
||||
, "5gbbW==oWVbj="
|
||||
, "5gbbW==oWVbj="
|
||||
, "5gbbW==oWVbj="
|
||||
, "5gbbW==oWVbj="
|
||||
, "5gbbW==oWVbj="
|
||||
, "5gbbW==oWVbj="
|
||||
, "4haaX==pXUai="
|
||||
, "4haaX==pXUai="
|
||||
, "4haaX==pXUai="
|
||||
, "4haaX==pXUai="
|
||||
, "4haaX==pXUai="
|
||||
, "4Jya/==B/UyK="
|
||||
, "QG8yw==Ox89E="
|
||||
, "QG8yw==BwyyF="
|
||||
, "QG8yw==Ox89E="
|
||||
, "QG8yw==BwyyF="
|
||||
, "BCDEF===EFBCDEFBCDE"
|
||||
, "BCDEF===DEFBCDEFBCD"
|
||||
, "BCDEF===CDEFBCDEFBC"
|
||||
, "BCDEF===BCDEFBCDEFB"
|
||||
, "BC=EFG======FGBCBCBCBCBCB"
|
||||
, "BC=EFG======FGBCBC=EFGBCB"
|
||||
, "/XXXX==X/XXX"
|
||||
, "AAAAAAAAAAAAAAAAAAAAAAAAAAAA"
|
||||
, "AAAAAAAAAAAAAAAAAAAAAAAAAAAA"
|
||||
, "+5=bbW======j+5gbbW+5gbbW"
|
||||
, "AAADBDCCCBDB"
|
||||
, "AAADQSCT"
|
||||
]
|
Loading…
Add table
Add a link
Reference in a new issue