diff options
Diffstat (limited to 'new-luxc/test/test')
-rw-r--r-- | new-luxc/test/test/luxc/generator/procedure/host.jvm.lux | 73 |
1 files changed, 72 insertions, 1 deletions
diff --git a/new-luxc/test/test/luxc/generator/procedure/host.jvm.lux b/new-luxc/test/test/luxc/generator/procedure/host.jvm.lux index 0cfd47538..ba90a00e3 100644 --- a/new-luxc/test/test/luxc/generator/procedure/host.jvm.lux +++ b/new-luxc/test/test/luxc/generator/procedure/host.jvm.lux @@ -7,7 +7,7 @@ ["e" error] [bit] [bool "bool/" Eq<Bool>] - [number "int/" Number<Int>] + [number "int/" Number<Int> Codec<Text,Int>] [text "text/" Eq<Text>] text/format (coll [list])) @@ -470,3 +470,74 @@ (test "jvm member virtual put" false) )) + +(host;import java.lang.Object) + +(host;import (java.util.ArrayList a)) + +(context: "Member [Method]" + [sample (|> r;int (:: @ map (|>. int/abs (i.% 100)))) + #let [object-longS (|> (#ls;Int sample) + (list (#ls;Text "java.lang.Object")) #ls;Tuple) + intS (|> (#ls;Int sample) + (list) (#ls;Procedure "jvm convert long-to-int") + (list (#ls;Text "int")) #ls;Tuple) + coded-intS (|> (#ls;Text (int/encode sample)) + (list (#ls;Text "java.lang.String")) #ls;Tuple) + array-listS (#ls;Procedure "jvm member invoke constructor" (list (#ls;Text "java.util.ArrayList") intS))]] + ($_ seq + (test "jvm member invoke static" + (|> (do meta;Monad<Meta> + [sampleI (@;generate (#ls;Procedure "jvm member invoke static" + (list (#ls;Text "java.lang.Long") + (#ls;Text "decode") + (#ls;Text "java.lang.Long") + coded-intS)))] + (@eval;eval sampleI)) + (meta;run (init-compiler [])) + (case> (#e;Success outputG) + (i.= sample (:! Int outputG)) + + (#e;Error error) + false))) + (test "jvm member invoke virtual" + (|> (do meta;Monad<Meta> + [sampleI (@;generate (|> object-longS + (list (#ls;Text "java.lang.Object") + (#ls;Text "equals") + (#ls;Text "boolean") + (#ls;Int sample)) + (#ls;Procedure "jvm member invoke virtual")))] + (@eval;eval sampleI)) + (meta;run (init-compiler [])) + (case> (#e;Success outputG) + (:! Bool outputG) + + (#e;Error error) + false))) + (test "jvm member invoke interface" + (|> (do meta;Monad<Meta> + [sampleI (@;generate (#ls;Procedure "jvm member invoke interface" + (list (#ls;Text "java.util.Collection") + (#ls;Text "add") + (#ls;Text "boolean") + array-listS + object-longS)))] + (@eval;eval sampleI)) + (meta;run (init-compiler [])) + (case> (#e;Success outputG) + (:! Bool outputG) + + (#e;Error error) + false))) + (test "jvm member invoke constructor" + (|> (do meta;Monad<Meta> + [sampleI (@;generate array-listS)] + (@eval;eval sampleI)) + (meta;run (init-compiler [])) + (case> (#e;Success outputG) + (host;instance? ArrayList (:! Object outputG)) + + (#e;Error error) + false))) + )) |