catala/tests/func/good/param_consistency.catala_en
2024-05-03 15:27:06 +02:00

81 lines
1.4 KiB
Plaintext

```catala
declaration scope S:
input cond content boolean
internal f1 content decimal depends on x content integer
output out content decimal
scope S:
definition f1 of x under condition cond
consequence equals decimal of (x * 2)
definition f1 of x under condition not cond
consequence equals x / 2
definition out equals f1 of 10
```
```catala-test-inline
$ catala Typecheck --check-invariants
┌─[RESULT]─
│ All invariant checks passed
└─
┌─[RESULT]─
│ Typechecking successful!
└─
```
```catala-test-inline
$ catala typecheck
┌─[RESULT]─
│ Typechecking successful!
└─
```
```catala
declaration scope T1:
strue scope S
sfalse scope S
output o1 content decimal
output o2 content decimal
scope T1:
definition strue.cond equals true
definition sfalse.cond equals false
definition o1 equals strue.out
definition o2 equals sfalse.out
```
```catala-test-inline
$ catala test-scope T1
┌─[RESULT]─
│ o1 = 20.0
│ o2 = 5.0
└─
```
## Multi-argument function
```catala
declaration scope S2:
output f content decimal depends on
x content integer,
y content integer
scope S2:
definition f of x, y equals x / y
declaration scope T2:
s2 scope S2
output o content decimal
scope T2:
definition o equals 10. * s2.f of 12, 3
```
```catala-test-inline
$ catala test-scope T2
┌─[RESULT]─
│ o = 40.0
└─
```