mirror of
https://github.com/fluencelabs/aqua-playground
synced 2025-03-15 19:51:13 +00:00
tests for arrow return from function
This commit is contained in:
parent
d5a24666f9
commit
85ddb2aa27
31
aqua/examples/returnArrow.aqua
Normal file
31
aqua/examples/returnArrow.aqua
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
import "@fluencelabs/aqua-lib/builtin.aqua"
|
||||||
|
|
||||||
|
export callReturnedArrow, callReturnedChainArrow
|
||||||
|
|
||||||
|
func returnCall(arg: string) -> string -> string, string:
|
||||||
|
str <- Op.concat_strings(arg, " literal")
|
||||||
|
closure = (s: string) -> string, string:
|
||||||
|
<- s, Op.concat_strings(s, str)
|
||||||
|
<- closure
|
||||||
|
|
||||||
|
func callReturnedArrow(argForFunc: string, argForClosure: string) -> string, string:
|
||||||
|
a = returnCall(argForFunc)
|
||||||
|
b, c <- a(argForClosure)
|
||||||
|
<- b, c
|
||||||
|
|
||||||
|
func secondReturnCall(arg: string) -> (string -> string, string), (string -> string, string), (string -> string, string):
|
||||||
|
str <- Op.concat_strings(arg, " second literal")
|
||||||
|
closure = (s: string) -> string, string:
|
||||||
|
<- s, Op.concat_strings(s, str)
|
||||||
|
b = closure
|
||||||
|
a = returnCall(" from second")
|
||||||
|
<- b, closure, a
|
||||||
|
|
||||||
|
func callReturnedChainArrow(argForFirst: string, argForSecond: string) -> string, string, string, string, string, string, string, string:
|
||||||
|
first = returnCall(argForFirst)
|
||||||
|
second, third, fourth <- secondReturnCall(argForSecond)
|
||||||
|
a, b <- first("first")
|
||||||
|
c, d <- second("second")
|
||||||
|
e, f <- third("third")
|
||||||
|
g, h <- fourth("fourth")
|
||||||
|
<- a, b, c, d, e, f, g, h
|
32
package-lock.json
generated
32
package-lock.json
generated
@ -16,7 +16,7 @@
|
|||||||
"loglevel": "1.8.1"
|
"loglevel": "1.8.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@fluencelabs/aqua": "0.10.3",
|
"@fluencelabs/aqua": "0.10.5",
|
||||||
"@fluencelabs/aqua-dht": "0.2.5",
|
"@fluencelabs/aqua-dht": "0.2.5",
|
||||||
"@fluencelabs/aqua-lib": "0.6.0",
|
"@fluencelabs/aqua-lib": "0.6.0",
|
||||||
"@types/jest": "29.4.0",
|
"@types/jest": "29.4.0",
|
||||||
@ -819,15 +819,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@fluencelabs/aqua": {
|
"node_modules/@fluencelabs/aqua": {
|
||||||
"version": "0.10.3",
|
"version": "0.10.5",
|
||||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.10.3.tgz",
|
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.10.5.tgz",
|
||||||
"integrity": "sha512-v7Jy+KzZkUm7NuUgrp7UQ8gxuhykxuTU3JigCdxiZMcG3/zD+OtHzsSggVLxVjDP7CKuTcjEKZSCxObwHp/Tpw==",
|
"integrity": "sha512-fcrxmkfLKXTIYjM2Gf9ZlF17IvTGwy84b1Eu5FPjsZD74Wnof9tbfHJMg5g2WK9FBMwaakwCQ3RtAS6MqyQhEg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fluencelabs/aqua-ipfs": "0.5.9",
|
"@fluencelabs/aqua-ipfs": "0.5.9",
|
||||||
"@fluencelabs/aqua-lib": "0.6.0",
|
"@fluencelabs/aqua-lib": "0.6.0",
|
||||||
"@fluencelabs/fluence": "0.28.0",
|
"@fluencelabs/fluence": "0.28.0",
|
||||||
"@fluencelabs/fluence-network-environment": "1.0.13",
|
"@fluencelabs/fluence-network-environment": "1.0.14",
|
||||||
"ipfs-http-client": "50.1.2"
|
"ipfs-http-client": "50.1.2"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
@ -871,12 +871,6 @@
|
|||||||
"integrity": "sha512-ifjtCM93KO3LhzPkMxqmXhwLmrg/scjOiyTihEVg7ns5N+BVzaK1eWzdOdqGdl9ZVoah43pdlQUepEo7VdRmsw==",
|
"integrity": "sha512-ifjtCM93KO3LhzPkMxqmXhwLmrg/scjOiyTihEVg7ns5N+BVzaK1eWzdOdqGdl9ZVoah43pdlQUepEo7VdRmsw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@fluencelabs/aqua/node_modules/@fluencelabs/fluence-network-environment": {
|
|
||||||
"version": "1.0.13",
|
|
||||||
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence-network-environment/-/fluence-network-environment-1.0.13.tgz",
|
|
||||||
"integrity": "sha512-2pci3T0sUHE08jwEs1r/vHKVT4XUh/A3j/QJ0eIhddsxyIjEksjdn05X7DF6STD14CF8GgBVOJEPgav8qaUMpA==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/@fluencelabs/avm": {
|
"node_modules/@fluencelabs/avm": {
|
||||||
"version": "0.35.3",
|
"version": "0.35.3",
|
||||||
"resolved": "https://npm.fluence.dev/@fluencelabs%2favm/-/avm-0.35.3.tgz",
|
"resolved": "https://npm.fluence.dev/@fluencelabs%2favm/-/avm-0.35.3.tgz",
|
||||||
@ -14077,24 +14071,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@fluencelabs/aqua": {
|
"@fluencelabs/aqua": {
|
||||||
"version": "0.10.3",
|
"version": "0.10.5",
|
||||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.10.3.tgz",
|
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.10.5.tgz",
|
||||||
"integrity": "sha512-v7Jy+KzZkUm7NuUgrp7UQ8gxuhykxuTU3JigCdxiZMcG3/zD+OtHzsSggVLxVjDP7CKuTcjEKZSCxObwHp/Tpw==",
|
"integrity": "sha512-fcrxmkfLKXTIYjM2Gf9ZlF17IvTGwy84b1Eu5FPjsZD74Wnof9tbfHJMg5g2WK9FBMwaakwCQ3RtAS6MqyQhEg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@fluencelabs/aqua-ipfs": "0.5.9",
|
"@fluencelabs/aqua-ipfs": "0.5.9",
|
||||||
"@fluencelabs/aqua-lib": "0.6.0",
|
"@fluencelabs/aqua-lib": "0.6.0",
|
||||||
"@fluencelabs/fluence": "0.28.0",
|
"@fluencelabs/fluence": "0.28.0",
|
||||||
"@fluencelabs/fluence-network-environment": "1.0.13",
|
"@fluencelabs/fluence-network-environment": "1.0.14",
|
||||||
"ipfs-http-client": "50.1.2"
|
"ipfs-http-client": "50.1.2"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@fluencelabs/fluence-network-environment": {
|
|
||||||
"version": "1.0.13",
|
|
||||||
"resolved": "https://registry.npmjs.org/@fluencelabs/fluence-network-environment/-/fluence-network-environment-1.0.13.tgz",
|
|
||||||
"integrity": "sha512-2pci3T0sUHE08jwEs1r/vHKVT4XUh/A3j/QJ0eIhddsxyIjEksjdn05X7DF6STD14CF8GgBVOJEPgav8qaUMpA==",
|
|
||||||
"dev": true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@fluencelabs/aqua-dht": {
|
"@fluencelabs/aqua-dht": {
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
"do": "aqua dist deploy --addr /dns4/kras-04.fluence.dev/tcp/19001/wss/p2p/12D3KooWFEwNWcHqi9rtsmDhsYcDbRUCDXH84RC4FW6UfsFWaoHi --config-path deploy.json --service tsOracle"
|
"do": "aqua dist deploy --addr /dns4/kras-04.fluence.dev/tcp/19001/wss/p2p/12D3KooWFEwNWcHqi9rtsmDhsYcDbRUCDXH84RC4FW6UfsFWaoHi --config-path deploy.json --service tsOracle"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@fluencelabs/aqua": "0.10.3",
|
"@fluencelabs/aqua": "0.10.5",
|
||||||
"@fluencelabs/aqua-dht": "0.2.5",
|
"@fluencelabs/aqua-dht": "0.2.5",
|
||||||
"@fluencelabs/aqua-lib": "0.6.0",
|
"@fluencelabs/aqua-lib": "0.6.0",
|
||||||
"@types/jest": "29.4.0",
|
"@types/jest": "29.4.0",
|
||||||
|
@ -57,6 +57,7 @@ import {lng58Bug} from '../compiled/examples/closures.js';
|
|||||||
import {config, isEphemeral} from '../config.js';
|
import {config, isEphemeral} from '../config.js';
|
||||||
import {bugLng79Call} from "../examples/canonCall.js";
|
import {bugLng79Call} from "../examples/canonCall.js";
|
||||||
import {bugLng119Call} from "../examples/functorsCall.js";
|
import {bugLng119Call} from "../examples/functorsCall.js";
|
||||||
|
import {returnArrowCall, returnArrowChainCall} from "../examples/returnArrowCall.js";
|
||||||
|
|
||||||
var selfPeerId: string;
|
var selfPeerId: string;
|
||||||
var peer1: IFluenceClient;
|
var peer1: IFluenceClient;
|
||||||
@ -121,6 +122,24 @@ describe('Testing examples', () => {
|
|||||||
expect(argResult).toBe('privet');
|
expect(argResult).toBe('privet');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('returnArrow.aqua', async () => {
|
||||||
|
let [result1, result2] = await returnArrowCall();
|
||||||
|
|
||||||
|
expect(result1).toBe('arg for closure ');
|
||||||
|
expect(result2).toBe('arg for closure arg for func literal');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returnArrow.aqua chain', async () => {
|
||||||
|
let argResult = await returnArrowChainCall();
|
||||||
|
|
||||||
|
expect(argResult).toBe(
|
||||||
|
["first", "firstarg for func1 literal",
|
||||||
|
"second", "secondarg for func2 second literal",
|
||||||
|
"third", "thirdarg for func2 second literal",
|
||||||
|
"fourth", "fourth from second literal"
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
|
||||||
it('streamRestrictions.aqua', async () => {
|
it('streamRestrictions.aqua', async () => {
|
||||||
let streamResResult = await streamResCall();
|
let streamResResult = await streamResCall();
|
||||||
|
|
||||||
|
9
src/examples/returnArrowCall.ts
Normal file
9
src/examples/returnArrowCall.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import {callReturnedArrow, callReturnedChainArrow} from "../compiled/examples/returnArrow.js";
|
||||||
|
|
||||||
|
export async function returnArrowCall(): Promise<[string, string]> {
|
||||||
|
return await callReturnedArrow("arg for func ", "arg for closure ")
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function returnArrowChainCall(): Promise<[string, string, string, string, string, string, string, string]> {
|
||||||
|
return await callReturnedChainArrow("arg for func1 ", "arg for func2 ")
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user