Author: fijal Branch: jit-leaner-frontend Changeset: r82764:9877c87c497d Date: 2016-03-04 16:40 +0200 http://bitbucket.org/pypy/pypy/changeset/9877c87c497d/
Log: an example simple strategy of list of operations diff --git a/rpython/jit/metainterp/test/strategies.py b/rpython/jit/metainterp/test/strategies.py --- a/rpython/jit/metainterp/test/strategies.py +++ b/rpython/jit/metainterp/test/strategies.py @@ -1,7 +1,7 @@ import sys from hypothesis import strategies -from rpython.jit.metainterp.resoperation import InputArgInt +from rpython.jit.metainterp.resoperation import InputArgInt, ResOperation, rop from rpython.jit.metainterp.history import ConstInt machine_ints = strategies.integers(min_value=-sys.maxint - 1, @@ -10,4 +10,28 @@ intconsts = strategies.builds(ConstInt, machine_ints) boxes = intboxes | intconsts boxlists = strategies.lists(boxes, min_size=1).flatmap( - lambda cis: strategies.lists(strategies.sampled_from(cis))) \ No newline at end of file + lambda cis: strategies.lists(strategies.sampled_from(cis))) + [email protected] +def lists_of_operations(draw, inputboxes): + def get(l1, l2, index): + if index < len(l1): + return l1[index] + return l2[index - len(l1)] + + size = draw(strategies.integers(min_value=1, max_value=100)) + inputargs = [] + for i in range(size): + inputargs.append(draw(inputboxes)) + size = draw(strategies.integers(min_value=1, max_value=100)) + ops = [] + for i in range(size): + s = strategies.integers(min_value=0, max_value=len(inputargs) + len(ops) - 1) + arg0 = get(inputargs, ops, draw(s)) + arg1 = get(inputargs, ops, draw(s)) + ops.append(ResOperation(rop.INT_ADD, [arg0, arg1], -1)) + return ops + +if __name__ == '__main__': + import pprint + pprint.pprint(lists_of_operations(intboxes).example()) \ No newline at end of file diff --git a/rpython/jit/metainterp/test/test_opencoder.py b/rpython/jit/metainterp/test/test_opencoder.py --- a/rpython/jit/metainterp/test/test_opencoder.py +++ b/rpython/jit/metainterp/test/test_opencoder.py @@ -108,4 +108,3 @@ assert jc_index == 2 assert pc == 1 assert [snapshot_iter.next() for i in range(2)] == [i0, i1] - \ No newline at end of file _______________________________________________ pypy-commit mailing list [email protected] https://mail.python.org/mailman/listinfo/pypy-commit
