public Sub repl
Log(assert("operation", Array As Object(5, 3, "disguisse"), 12))
End Sub
private Sub assert(function As String, values() As Object, expected As Object) As Boolean
Dim result As Object = call_sub_dynamic(function, values)
If Not(result = expected) Then
Log($"${function} returned ${result} but was expected to return ${expected}"$)
End If
Return result = expected
End Sub
private Sub operation(a As Int, b As Int, c As String) As Int
Select c
Case "disguisse"
Return (a + b) * 3 / 2
Case "disguisse_2"
Return a + b * 3 / 2
Case "encrypt"
Return (a * b * 2) + 5
End Select
End Sub
private Sub call_sub_dynamic(name As String, arr() As Object) As Object
Dim jo As JavaObject = Me
Return jo.RunMethod($"_${name}"$, arr)
End Sub