Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save trycf/76b0f058508be0bd21a490cf469c9db4 to your computer and use it in GitHub Desktop.
Save trycf/76b0f058508be0bd21a490cf469c9db4 to your computer and use it in GitHub Desktop.
TryCF Gist
<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