def main():
    """
    Just runs some example code.
    """

    # generic JavaObject stuff
    helper.print_title("Generic stuff using weka.core.SystemInfo")
    info = JavaObject(JavaObject.new_instance(classname="weka.core.SystemInfo"))
    jwrapper = info.jwrapper()
    print("toString() method:")
    print(jwrapper.toString())

    # random
    helper.print_title("Random")
    rnd = Random(1)
    for i in xrange(10):
        print(rnd.next_double())
    for i in xrange(10):
        print(rnd.next_int(100))

    # single index
    helper.print_title("SingleIndex")
    si = SingleIndex(index="first")
    upper = 10
    si.upper(upper)
    print(str(si) + " (upper=" + str(upper) + ")\n -> " + str(si.index()))
    si.single_index = "3"
    si.upper(upper)
    print(str(si) + " (upper=" + str(upper) + ")\n -> " + str(si.index()))
    si.single_index = "last"
    si.upper(upper)
    print(str(si) + " (upper=" + str(upper) + ")\n -> " + str(si.index()))

    # range
    helper.print_title("Range")
    rng = Range(ranges="first")
    upper = 10
    invert = False
    rng.upper(upper)
    rng.invert = invert
    print(str(rng.ranges) + " (upper=" + str(upper) + ", invert=" + str(invert) + ")\n -> " + str(rng.selection()))
    rng.ranges = "3"
    rng.upper(upper)
    rng.invert = invert
    print(str(rng.ranges) + " (upper=" + str(upper) + ", invert=" + str(invert) + ")\n -> " + str(rng.selection()))
    rng.ranges = "last"
    rng.upper(upper)
    rng.invert = invert
    print(str(rng.ranges) + " (upper=" + str(upper) + ", invert=" + str(invert) + ")\n -> " + str(rng.selection()))
    rng.ranges = "first-last"
    rng.upper(upper)
    rng.invert = invert
    print(str(rng.ranges) + " (upper=" + str(upper) + ", invert=" + str(invert) + ")\n -> " + str(rng.selection()))
    rng.ranges = "3,4,7-last"
    rng.upper(upper)
    rng.invert = invert
    print(str(rng.ranges) + " (upper=" + str(upper) + ", invert=" + str(invert) + ")\n -> " + str(rng.selection()))
    rng.ranges = "3,4,7-last"
    rng.upper(upper)
    invert = True
    rng.invert = invert
    print(str(rng.ranges) + " (upper=" + str(upper) + ", invert=" + str(invert) + ")\n -> " + str(rng.selection()))

    # tag
    helper.print_title("Tag")
    tag = Tag(ident=1, ident_str="one")
    print("tag=" + str(tag) + ", ident=" + str(tag.ident) + ", readable=" + tag.readable)
    tag.ident = 3
    print("tag=" + str(tag) + ", ident=" + str(tag.ident) + ", readable=" + tag.readable)
    tag = Tag(ident=2, ident_str="two", readable="2nd tag")
    print("tag=" + str(tag) + ", ident=" + str(tag.ident) + ", readable=" + tag.readable)