/////////////////////////////////
echo Testing basic math...
eval x = (1 + 2)
same $x, 3
eval x = (3 - 1) 
same $x, 2
eval x = (2 * 3)
same $x, 6
eval x = (8 / 2)
same $x, 4

echo Testing extreme numbers...
same string(real("INF")), "real(\"INF\")"
same string(real("-INF")), "real(\"-INF\")"
same string(real("NaN")), "real(\"NaN\")"
diff real("NaN"), real("NaN")
same real("INF"), real("INF")
same real("-INF"), real("-INF")
diff real("INF"), real("-INF")
same 0.0, -(0.0)
same 0.0, real("-0.0")
same string(0.0), "0.0"
same string(-0.0), "-0.0"

/////////////////////////////////
echo Testing basic attributes in a ClassAd...
eval x = [
            a = 1;
            b = 2.0;
            c = "alain";
            d = true;
            atime = absTime("2004-01-01");
            rtime = relTime("2+25:14:16.123");
            l = {1, 1, 2, 3, 5};
            e = error;
            u = undefined;
         ]
same $x.a, 1
same $x.b, 2.0
same $x.c, "alain"
same $x.d, true
same $x.atime, absTime("2004-01-01");
same $x.rtime, relTime("2+25:14:16.123");
same $x.l, {1, 1, 2, 3, 5}
same $x.l[4], 5
same $x.e, error
same $x.u, undefined
same isinteger($x.a), true
same isinteger($x.b), false
same isreal($x.b), true
same isreal($x.c), false
same isstring($x.c), true
same isstring($x.d), false
same isboolean($x.d), true
same isboolean($x.c), false
same isabstime($x.atime), true
same isabstime($x.rtime), false
same isreltime($x.rtime), true
same isreltime($x.atime), false
same islist($x.l), true
same islist($x.a), false
same iserror($x.e), true
same iserror($x.u), false
same isundefined($x.u), true
same isundefined($x.e), false

// Note that testing XML relies on the ClassAd from
// the above testing.
// echo Testing XML...
// eval y = [ a = 2; b = "Lisp rocks"; ]
// writexml tmp.xml {$x, $y}
// readxml z tmp.xml
// same $x, $z[0]
// same $y, $z[1]

/////////////////////////////////
echo Testing select on lists...
eval x = {
           [a = 3; b = "I see London"],
           [a = 2; b = "I see France"],
           [a = 1; b = "I see Alain's funky pants"]
         }
same $x.a, {3, 2, 1}
same $x.b, {"I see London", "I see France", "I see Alain's funky pants"}
same $x.c, {undefined, undefined, undefined}
same {}.a, {}

/////////////////////////////////
echo Testing subscripts
eval x = [
           a = 3;
           b = "alain";
           ab = 4;
         ]
same $x["a"], 3
same $x["b"], "alain"
same $x["c"], error
eval d = $x["c"]
same $x[strcat("a", "b")], 4
eval x = {"a", "b", "c"}
same $x[0], "a"
same $x[1], "b"
same $x[2], "c"
same $x[3], error

/////////////////////////////////
echo Testing multiple semicolons...
eval x = [
           ;;
           a = 3;;
           b = 4;;
         ]

/////////////////////////////////
echo Testing functions...
same int(3), 3
same int(3.9), 3
same int("3.9"), 3
same int(absTime("1970-01-01T:00:00:01Z")), 1
same int(reltime("01:00:01")), 3601
eval y = int(absTime("1970-01-01T:00:00:01Z"))
same $y, 1

same real(3), 3.0
same real(3.9), 3.9
same real("3.9"), 3.9
same real(absTime("1970-01-01T:00:00:01Z")), 1.0
same real(reltime("01:00:01")), 3601.0

same string("alain"), "alain"
same string(1), "1"

same floor(3.9), 3
same floor("3.9"), 3

same ceiling(3.9), 4
same ceiling("3.9"), 4

same round(3.1), 3
same round(3.9), 4

same strcat("", "roy"), "roy"
same strcat("alain", ""), "alain"
same strcat("alain", "roy"), "alainroy"
same strcat(14, " bottles of root beer"), "14 bottles of root beer"

same substr("abcde", 1), "bcde"
same substr("abcde", 4), "e"
same substr("abcde", 5), ""
same substr("abcde", 1, 2), "bc"
same substr("abcde", 4, 2), "e"

same strcmp("alain", "roy") < 0, true
same strcmp("roy", "alain") > 0, true
same strcmp("alain", "alain"), 0

same stricmp("alain", "ALAIN"), 0
same stricmp("alain", "roy") < 0, true

same tolower("ALAIN"), "alain")
same toupper("alain"), "ALAIN")
same tolower(true), "true")
same toupper(true), "TRUE")

same member(1, {1, 2, 3}), true
same member(4, {1, 2, 3}), false

same regexp("Alain.*Roy", "Alain Aslag Roy"), true
same regexp("alain.*roy", "Alain Aslag Roy"), false
same regexp("alain.*roy", "Alain Aslag Roy", "i"), true

//same regexpMember("b.*", {}), false
//same regexpMember("b.*", {"aa"}), false
//same regexpMember("b.*", {"aa", "bb"}), true
//same regexpMember("b.*", {"bb", "aa"}), true
//same regexpMember("b.*", {1, "bb"} ), error


eval t = absTime("1970-01-02T:03:04:05Z")
same splitTime($t).year, 1970
same splitTime($t).month, 1
same splitTime($t).day, 2
same splitTime($t).hours, 3
same splitTime($t).minutes, 4
same splitTime($t).seconds, 5
same splitTime($t).offset, 0



eval t = absTime("1970-01-02T:03:04:05-06:00")
eval tt = splitTime($t)
same splitTime($t).year, 1970
same splitTime($t).month, 1
same splitTime($t).day, 2
same splitTime($t).hours, 3
same splitTime($t).minutes, 4
same splitTime($t).seconds, 5
same splitTime($t).offset, -21600



eval t = relTime("1d2h3m4.5s")
eval tt = splitTime($t)
same splitTime($t).days, 1
same splitTime($t).hours, 2
same splitTime($t).minutes, 3
same splittime($t).seconds, 4.5
eval tt = splitTime($t)


eval t = absTime("1997-08-30T16:04:05-0500")
eval f = formatTime($t, "%m %d %Y")
same $f, "08 30 1997"
eval f = formatTime($t, "%H %M %S")
same $f, "16 04 05"
eval f = formatTime($t, "%A %a")
same $f, "Saturday Sat"
eval f = formatTime($t, "%B %b")
same $f, "August Aug"
eval f = formatTime(splitTime($t), "%H:%M:%S")
same $f, "16:04:05"
eval f = formatTime($t)
same $f, "Sat Aug 30 16:04:05 1997"

same size({}), 0
same size({1}), 1
same size({1, 2, 3, 4, 5}), 5
same size([]), 0
same size([a = 1;]), 1
same size([a = 1; b = 2;]), 2
same size(""), 0
same size("a"), 1
same size("ab"), 2
same size(3), error
same size(3.4), error

eval list0 = {}
eval list1 = {1}
eval list5 = {1, 2, 3, 4, 5}

same sum($list0), undefined
same avg($list0), undefined
same min($list0), undefined
same max($list0), undefined
// #### Do we really want these to be false and true?
same anycompare("<", $list0, 3), false
same allcompare("<", $list0, 3), true

same sum($list1), 1
same avg($list1), 1.0
same min($list1), 1
same max($list1), 1
same anycompare("<", $list1, 3), true
same allcompare("<", $list1, 3), true

same sum($list5), 15
same avg($list5), 3.0
same min($list5), 1
same max($list5), 5
same anycompare("<", $list5, 3), true
same allcompare("<", $list5, 3), false

same ifThenElse(1+1==2, 3, 4), 3
same ifThenElse(1+1==3,3,4), 4
same ifThenElse(ERROR,3,4), ERROR
same ifThenElse(UNDEFINED,3,4), UNDEFINED

same interval(1), "1"
same interval(60*2 + 1), "2:01"
same interval(3600*3 + 60*2 + 1), "3:02:01"
same interval(3600*24*4 + 3600*3 + 60*2 + 1), "4+03:02:01"

//same regexps("[abc]*([def]*)[ghi]*","aaaabbbbcccccdddeeefffggghhhiii","\\1"), "dddeeefff"
//same regexps("[abc]*([def]*)[ghi]*","abcdefghi","\\0"), "abcdefghi"
//same regexps("[abc]*([def]*)[ghi]*","abcdefghi","\\2"), error
//same regexps("[abc]*([def]*)[ghi]*","NO","\\0"), ""


echo Testing eval
same eval("1+1"), 2
same eval(1+1), 2
same eval("1+"), ERROR
eval x = [ A = 1; B = 2; C = eval("A+B"); ]
same $x.C, 3

echo Testing boolean expressions
echo Testing && operator
same false, false && false
same false, false && undefined
same false, false && true
same false, false && error

same false, undefined && false
same undefined, undefined && undefined
same undefined, undefined && true
same error, undefined && error

same false, true && false
same undefined, true && undefined
same true, true && true
same error, true && error

same error, error && false
same error, error && undefined
same error, error && true
same error, error && error


echo Testing || operator
same false, false || false
same undefined, false || undefined
same true, false || true
same error, false || error

same undefined, undefined || false
same undefined, undefined || undefined
same true, undefined || true
same error, undefined || error

same true, true || false
same true, true || undefined
same true, true || true
same true, true || error

same error, error || false
same error, error || undefined
same error, error || true
same error, error || error


echo Testing ! operator
same true, !false
same undefined, !undefined
same false, !true
same error, !error


echo Testing ? operator
same false, false ? true : false
same true, false ? false : true
same undefined, false ? true : undefined
same true, false ? undefined : true

same true, true ? true : false
same false, true ? false : true
same true, true ? true : undefined
same undefined, true ? undefined : true

echo Testing characters with negative ascii values
// # the following used to not even parse on some systems
same "–", "–"

echo Testing stringListsIntersect()
same true, stringListsIntersect("one,two","two,three")
same false, stringListsIntersect("one,two","three,four")
same false, stringListsIntersect("one,two","three,four",";")
same true, stringListsIntersect("one,two","one")
same true, stringListsIntersect("one, two","two, three")
same true, stringListsIntersect("one,two","two,three",",")
same true, stringListsIntersect("one;two","two;three",";")
same undefined, stringListsIntersect("one,two",undefined)
same undefined, stringListsIntersect(undefined,"one,two" )
