containers-tests.xreate
No OneTemporary

File Metadata

Created
Mon, Aug 24, 10:37 PM

containers-tests.xreate

import raw ("scripts/containers/containers-tests.assembly.lp").
Test = type predicate{
common
}.
FnAnns = type predicate{
test(kind:: Test)
}
min = function(x:: [int]; csize(5)):: int
{
loop fold((x:: [int]; csize(5))->el:: int, 1000->min):: int
{
if (el < min):: int { el } else { min }
}
}
min2 = function(x:: [int]; fly(csize(5))):: int
{
loop fold((x:: [int]; fly(csize(5)))->el:: int, 1000->min):: int
{
if (el < min):: int { el } else { min }
}
}
fn-ArrayArg1 = function:: int; test(common())
{
a = {3, 2, 1, 4, 5}:: [int]; csize(5).
min(a)
}
fn-FlyArg1 = function:: int; test(common())
{
a = {3, 2, 1, 4, 5}:: [int]; csize(5).
b = loop map(a->x:: int):: [int]; fly(csize(5))
{
8 * x :: int
}.
min2(b)
}
fn-Range1 = function:: int; test(common())
{
range = [1..5]:: [int]; range().
loop fold(range->x:: int, 0->sum):: int {sum + x}
}
fn-Range2 = function:: int; test(common())
{
range1 = [1..5]:: [int]; range().
range2 = loop map (range1->x:: int):: [int]; fly(range()) {2 * x:: int}.
loop fold(range2->x:: int, 0->sum):: int {sum + x}
}
fn-GenRange1 = function:: [int]; range()
{
[1..5]:: [int]; range()
}
fn-RetRange1 = function:: int; test(common())
{
loop fold((fn-GenRange1()::[int]; range()) -> x:: int, 0->sum):: int
{ sum + x }
}
/*
reorder = function(aggrSrc:: [int], idxs::[int]):: [int]
{
loop map(idxs->idx)::[int]
{
aggrSrc[idx])
}
}
reverse = function(aggrSrc::[int])::[int]
{
sizeDst = 5:: int.
idxsDst = intrinsic keys(aggrSrc):: [int].
idxsTnsf = loop map(idxsDst-> idx:: int):: [int]
{
sizeDst - idx - 1
}
reorder(aggrSrc, idxsTnsf)
}
*/

Event Timeline