Files
cell/tests/text.cm

242 lines
5.9 KiB
Plaintext

return {
test_array_basic: function() {
var arr1 = ["Hello", " ", "World"]
var result1 = text(arr1)
if (result1 != "Hello World") disrupt
},
test_array_separator: function() {
var arr2 = ["one", "two", "three"]
var result2 = text(arr2, ", ")
if (result2 != "one, two, three") disrupt
},
test_array_codepoints: function() {
var arr3 = [72, 101, 108, 108, 111]
var result3 = text(arr3)
if (result3 != "Hello") disrupt
},
test_array_mixed: function() {
var arr4 = ["Hi", 32, "there", 33]
var result4 = text(arr4)
if (result4 != "Hi there!") disrupt
},
test_radix_10: function() {
var result = text(12, 10)
if (result != "12") disrupt
},
test_radix_8: function() {
var result = text(12, 8)
if (result != "14") disrupt
},
test_radix_16: function() {
var result = text(12, 16)
if (result != "c") disrupt
},
test_radix_2: function() {
var result = text(12, 2)
if (result != "1100") disrupt
},
test_radix_32: function() {
var result = text(12, 32)
if (result != "c") disrupt
},
test_radix_hex_large: function() {
var result = text(255, 16)
if (result != "ff") disrupt
},
test_radix_negative: function() {
var result = text(-42, 10)
if (result != "-42") disrupt
},
test_radix_36: function() {
var result = text(100, 36)
if (result != "2s") disrupt
},
test_format_n: function() {
var result = text(123456789.1, "n")
if (result != "123456789.1") disrupt
},
test_format_spaced_decimal: function() {
var result = text(123456789.1, "3s4")
if (result != "123 456 789.1000") disrupt
},
test_format_s: function() {
var result = text(123456789.1, "s")
if (result != "123 456 789.1") disrupt
},
test_format_d2: function() {
var result = text(123456789.1, "d2")
if (result != "123,456,789.10") disrupt
},
test_format_4d0: function() {
var result = text(123456789.1, "4d0")
if (result != "1,2345,6789.1") disrupt
},
test_format_e: function() {
var result = text(123456789.1, "e")
if (result != "1.234567891e+8") disrupt
},
test_format_e4: function() {
var result = text(123456789.1, "e4")
if (result != "1.2346e+8") disrupt
},
test_format_i: function() {
var result = text(123456789.1, "i")
if (result != "123456789") disrupt
},
test_format_8b: function() {
var result = text(123456789.1, "8b")
if (result != "111_01011011_11001101_00010101") disrupt
},
test_format_o: function() {
var result = text(123456789.1, "o")
if (result != "726746425") disrupt
},
test_format_h: function() {
var result = text(123456789.1, "h")
if (result != "75BCD15") disrupt
},
test_format_t: function() {
var result = text(123456789.1, "t")
if (result != "3NQK8N") disrupt
},
test_int_4b8: function() {
var result = text(12, "4b8")
if (result != "0000_1100") disrupt
},
test_int_o3: function() {
var result = text(12, "o3")
if (result != "014") disrupt
},
test_int_h4: function() {
var result = text(12, "h4")
if (result != "000C") disrupt
},
test_int_t2: function() {
var result = text(12, "t2")
if (result != "0C") disrupt
},
test_int_h_negative: function() {
var result = text(-15, "h")
if (result != "-F") disrupt
},
test_int_b_zero: function() {
var result = text(0, "b")
if (result != "0") disrupt
},
test_substr_start: function() {
var str = "miskatonic"
var result = text(str, 0, 3)
if (result != "mis") disrupt
},
test_substr_middle: function() {
var str = "miskatonic"
var result = text(str, 3, 6)
if (result != "kat") disrupt
},
test_substr_to_end: function() {
var str = "miskatonic"
var result = text(str, 5, null)
if (result != "tonic") disrupt
},
test_substr_negative_to: function() {
var str = "miskatonic"
var result = text(str, 0, -4)
if (result != "miskat") disrupt
},
test_substr_negative_from: function() {
var str = "miskatonic"
var result = text(str, -3, null)
if (result != "nic") disrupt
},
test_substr_empty_range: function() {
var str = "miskatonic"
var result = text(str, 0, 0)
if (result != "") disrupt
},
test_substr_past_end: function() {
var str = "miskatonic"
var result = text(str, 10, null)
if (result != "") disrupt
},
test_substr_out_of_bounds: function() {
var str = "miskatonic"
var result = text(str, 11, null)
if (result != null) disrupt
},
test_substr_invalid_range: function() {
var str = "miskatonic"
var result = text(str, 2, 1)
if (result != null) disrupt
},
test_empty_array: function() {
var result = text([])
if (result != "") disrupt
},
test_single_element: function() {
var result = text([42])
if (result != "42") disrupt
},
test_identity: function() {
var result = text("hello")
if (result != "hello") disrupt
},
test_invalid_format: function() {
var result = text(123, "xyz")
if (result != null) disrupt
},
test_tiny_number: function() {
var tiny = 0.0000001
var result = text(tiny, "n")
if (search(result, 'e', 0) == null) disrupt
},
test_huge_number: function() {
var huge = 1e22
var result = text(huge, "n")
if (search(result, 'e', 0) == null) disrupt
}
}