// DEPENDENCE: a.txt
// EXEC: cjc %import-path %L %l %f
// EXEC: ./main

import io4cj.*
import std.posix.*
import std.io.*
import std.fs.*
import std.time.*

main () {
    var str = ByteString(Array<Byte>(15, {i => UInt8(i % 256)}))
    try {
        var str2 = str.substring(1,20)
    } catch(e: Exception) {
        println("case pass")
    }
    try {
        var str3 = str.substring(2,5)
    } catch(e: Exception) {
        println("case pass")
    }
    try {
        var str4 = str.substring(0,15)
    } catch(e: Exception) {
        println("case pass")
    }
    try {
        var str41 = str.substring(5,2)
    } catch(e: Exception) {
        println("case pass")
    }
    let str5 = str.substring(1,6)
    let str6 = str.getByte(1)
    let str7 = str.size
    let str8 = str.toByteArray()
    let str9 = str.write("./a.txt")
    let fs = File("./a.txt",OpenMode.Read)
    try {
        let str10 = str.write(fs)
    } catch(e: Exception) {
        println("case pass")
    }
    var ess: String = ""
    try {
        var str1 = str.substring(-1,1)
    } catch(e: Exception) {
        ess = e.toString()
    }
    if (ess != "IllegalArgumentException: beginIndex < 0") {
        return 1
    }
    return 0
}