whiley_test_file 0.6.2

An API for manipulating test files for the Whiley Programming Language.
Documentation
original.name="Reference_Valid_23"
boogie.ignore=true
Whiley2Boogie.issue=127
======
>>> main.whiley
type Ref<T> is &T

method fill(Ref<int>[] refs, int n)
ensures all { k in 0..|refs| | *(refs[k]) == n }:
    //
    for i in 0..|refs|:
        *(refs[i]) = n

method to_array(Ref<int>[] refs) -> (int[] vals)
ensures |vals| == |refs|
ensures all { k in 0..|refs| | *(refs[k]) == vals[k] }:
    //
    int[] vs = [0;|refs|]
    //
    for i in 0..|vs|
    where |vs| == |refs|
    where all { k in 0..i | *(refs[k]) == vs[k] }:
        vs[i] = *(refs[i])
    //
    return vs
        

public export method test():
    Ref<int>[] rs = [new 1, new 2, new 3]
    int[] xs = to_array(rs)
    //
    assert xs == [1,2,3]
    //
    fill(rs,0)
    //
    xs = to_array(rs)
    //
    assert xs == [0,0,0]

---