Created
May 24, 2024 16:22
-
-
Save trycf/76b0f058508be0bd21a490cf469c9db4 to your computer and use it in GitHub Desktop.
TryCF Gist
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<cfscript> | |
function assert( actual, expected ) { | |
var wanted = expected; | |
var got = actual; | |
if ( !isSimpleValue( actual ) ) { | |
wanted = serializeJSON( expected ); | |
got = serializeJSON( actual ); | |
} | |
if ( wanted == got ) { | |
writeOutput( "✔" ) | |
} else { | |
writeOutput( "✗" ) | |
} | |
writeOutput( " expected `#wanted#`, got `#got#`<br>" ); | |
if ( wanted != got ) { | |
writeDump( callstackget().pop() ) | |
} | |
} | |
setLocale( "es_SV"); | |
actual = getlocaleinfo(); | |
assert( actual.country, "SV" ); | |
assert( actual.language, "es" ); | |
assert( actual.name, "español (El Salvador)" ); | |
assert( actual.variant, "" ); | |
assert( actual.display.country, "El Salvador" ); | |
assert( actual.display.language, "español" ); | |
assert( actual.iso.country, "SLV" ); | |
assert( actual.iso.language, "spa" ); | |
original = { | |
"a": 10, | |
"b": [ | |
20,30 | |
], | |
"c": [ | |
{ "d": 40 } | |
] | |
} | |
dup = duplicate( original ); | |
dup.z = 50; | |
// mutate the original | |
original.a = 100; | |
original.b.append(400); | |
original.c[ 1 ].d = 500; | |
original.c[ 1 ].e = 600; | |
dup.y = 50; | |
assert( original.keyExists( "z" ), false ); | |
assert( original.a, 100 ); | |
assert( original.keyExists( "y" ), false ); | |
assert( dup.a, 10 ); | |
assert( original.b.len(), 3 ); | |
assert( dup.b.len(), 2 ); | |
assert( original.c[ 1 ].d, 500 ); | |
assert( original.c[ 1 ].e, 600 ); | |
assert( dup.c[ 1 ].d, 40 ); | |
assert( dup.c[ 1 ].keyExists("e"), false ); | |
todayDate = createDateTime(2024, 4, 7, 23, 45, 59, 999); | |
assert( dayofweek(todayDate), 1 ); | |
assert( dayofyear(todayDate), 98); | |
assert( daysinmonth(todayDate), 30 ); | |
assert( daysinyear(todayDate), 366 ); | |
todayDate = createDateTime(2024, 4, 7, 23, 45, 59, 999); | |
assert( datePart("yyyy", todayDate), 2024 ); | |
assert( datePart("q", todayDate), 2 ); | |
assert( datePart("m", todayDate), 4 ); | |
assert( datePart("y", todayDate), 98 ); | |
assert( datePart("w", todayDate), 1 ); | |
assert( datePart("ww", todayDate), 15 ); | |
assert( datePart("h", todayDate), 23 ); | |
assert( datePart("n", todayDate), 45 ); | |
assert( datePart("s", todayDate), 59 ); | |
assert( datePart("l", todayDate), 999 ); | |
setLocale("English (US)"); | |
todayDate = createDate(2024, 4, 7); | |
assert( dateFormat(todayDate, "full"), "Sunday, April 7, 2024" ); | |
assert( dateFormat(todayDate, "long"), "April 7, 2024" ); | |
assert( dateFormat(todayDate, "medium"), "Apr 7, 2024" ); | |
assert( dateFormat(todayDate, "short"), "4/7/24" ); | |
assert( dateFormat(todayDate, "m"), "4" ); | |
assert( dateFormat(todayDate, "mm"), "04" ); | |
assert( dateFormat(todayDate, "mmm"), "Apr" ); | |
assert( dateFormat(todayDate, "mmmm"), "April" ); | |
assert( dateFormat(todayDate, "d"), "7" ); | |
assert( dateFormat(todayDate, "dd"), "07" ); | |
assert( dateFormat(todayDate, "ddd"), "Sun" ); | |
assert( dateFormat(todayDate, "dddd"), "Sunday" ); | |
assert( createdate(1, 1, 2), "{ts '0001-01-02 00:00:00'}" ); | |
assert( createdate(29, 1, 2), "{ts '0029-01-02 00:00:00'}" ); | |
assert( createdate(30, 1, 2), "{ts '0030-01-02 00:00:00'}" ); | |
assert( createdatetime(1930, 1, 2, 1, 2, 3), "{ts '1930-01-02 01:02:03'}" ); | |
a = ["Apple","Zebra","Ähhhh"]; | |
arraySort( | |
a, | |
"textnocase", | |
"asc", | |
true | |
); | |
assert( a, ["Ähhhh","Apple","Zebra"] ); | |
a = ["10", "5", "20", "15", "30"]; | |
arraySort( | |
a, | |
(x, y) => compare(x,y) | |
); | |
assert( a, ["10","15","20","30","5"] ); | |
someArray = ["1", "50", "100"]; | |
arraySort(someArray, "text", "asc"); | |
assert( someArray, ["1","100","50"] ); | |
someArray = ["1", "50", "100"]; | |
arraySort(someArray, "numeric", "asc"); | |
assert( someArray, ["1","50","100"] ); | |
someArray = ["1", "50", "100"]; | |
arraySort(someArray, "text", "desc"); | |
assert( someArray, ["50","100","1"] ); | |
someArray = ["1", "50", "100"]; | |
arraySort(someArray, "numeric", "desc"); | |
assert( someArray, ["100","50","1"] ); | |
array = ["one","two","three","four","five","six"]; | |
newArray = arraySlice(array, -1, 1); | |
assert(newArray, ["six"]); | |
array = ["one","two","three","four","five","six"]; | |
newArray = arraySlice(array, 4, -2); | |
assert(newArray, ["four"]) | |
arr = []; | |
el = arrayShift(arr, 5); | |
assert( el, 5 ); | |
a = ['One','Two','Three','Four','Five','Six','Seven','Eight']; | |
b = arrayMid(a, 5, 100); | |
assert( b, ['Five','Six','Seven','Eight'] ); | |
someArray = ["one","two"]; | |
assert(arrayIsDefined(someArray, 1), true); | |
someArray = ["a","b","c"]; | |
assert(arrayInsertAt(someArray, 4, "d"), true); | |
result = arrayIndexExists(["one"], 1); | |
assert(result, true); | |
data = [ | |
{ | |
label: "A", | |
size: 2 | |
}, | |
{ | |
label: "B", | |
size: 0 | |
}, | |
{ | |
label: "C", | |
size: 1 | |
} | |
]; | |
result = arrayFindAll(data,function(el) { | |
return el.size; | |
}); | |
assert(result, [1,3]); | |
arr = ['apple', 'orange', 'pear', 'apple']; | |
arr.delete('apple', 'all'); | |
assert(arr, ['orange', 'pear']); | |
assert( arrayContains( [ 'hello' , 'world' ], 'el', true ), true ); | |
a = [ 30, 20, 10 ]; | |
result = arrayReduce( a, function(acc, el, index, array){ | |
acc[ el ] = index; | |
return acc; | |
}, [=] ); | |
assert( result, { "30" : 1, "20" : 2, "10" : 3 } ); | |
assert( dayofweekasstring(1), "Sunday" ); | |
</cfscript> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment