// Diagnose tensor_from_ints
fn main() {
    // Test 1: individual args (the old way)
    let t1 = tensor_from_ints(1, 2, 3)
    println("individual args: " + float_to_str(t_index_get(t1, 0)) + " " + float_to_str(t_index_get(t1, 1)) + " " + float_to_str(t_index_get(t1, 2)))

    // Test 2: array literal
    let arr = [10, 20, 30]
    println("array type test: " + int_to_str(array_len(arr)))
    println("arr[0] = " + int_to_str(array_get(arr, 0)))

    // Test 3: array passed to tensor_from_ints
    let t2 = tensor_from_ints(arr)
    println("from array: " + float_to_str(t_index_get(t2, 0)) + " " + float_to_str(t_index_get(t2, 1)))

    // Test 4: negative array
    let arr2 = [-5, 42, -100]
    println("neg arr[0] = " + int_to_str(array_get(arr2, 0)))
    let t3 = tensor_from_ints(arr2)
    println("from neg array: " + float_to_str(t_index_get(t3, 0)) + " " + float_to_str(t_index_get(t3, 1)))

    // Test 5: build tensor manually
    let mut t4 = t_zeros(3)
    t4 = t_index_set(t4, 0, -1044.0)
    t4 = t_index_set(t4, 1, 42.0)
    t4 = t_index_set(t4, 2, -758.0)
    println("manual: " + float_to_str(t_index_get(t4, 0)) + " " + float_to_str(t_index_get(t4, 1)) + " " + float_to_str(t_index_get(t4, 2)))
}
