diff --git a/wta/bench.py b/wta/bench.py index 22377310ace3908a9f250402a0b2c56355be39cb..ab9370dca5484793eb0c817ab6a77d7b6cace15f 100755 --- a/wta/bench.py +++ b/wta/bench.py @@ -11,14 +11,18 @@ import scipy.stats as st samples = 5 +def from_maybe(default, x): + return default if x is None else x + + # Edge Spec should be ("transitions", str) or ("zero-frequency", str) def coalg_file(states, monoid, symbols, edge_spec, different_values, i): if edge_spec[0] == "transitions": return "bench/wta_%s_%s_t%s_%s_%s_%d" % (monoid, symbols, edge_spec[1], - different_values, states, i) + from_maybe("", different_values), states, i) else: return "bench/wta_%s_%s_%s_%s_%s_%d" % (monoid, symbols, edge_spec[1], - different_values, states, i) + from_maybe("", different_values), states, i) def check_zerotrans(args): @@ -54,7 +58,8 @@ def generate(args): cmd = [generator, "--states", states, "--monoid", monoid, "--symbols", symbols] cmd += ["--" + edge_spec[0], edge_spec[1]] - cmd += ["--different-values", different_values] + if not (different_values is None): + cmd += ["--different-values", different_values] subprocess.run(cmd, stdout=open(f, "w+")) @@ -82,7 +87,7 @@ def run_one(args, i): stats['monoid'] = monoid stats['symbols'] = symbols stats['edge-spec'] = str(edge_spec) - stats['mon-values'] = different_values + stats['mon-values'] = from_maybe("", different_values) stats['i'] = i return stats @@ -257,7 +262,7 @@ def main(): gen_parser.add_argument('--symbols', required=True) gen_parser.add_argument('--zero-frequency') gen_parser.add_argument('--transitions') - gen_parser.add_argument('--different-values', required=True) + gen_parser.add_argument('--different-values') gen_parser.set_defaults(func=generate) run_parser = subparsers.add_parser('run') @@ -267,7 +272,7 @@ def main(): run_parser.add_argument('--symbols', required=True) run_parser.add_argument('--zero-frequency') run_parser.add_argument('--transitions') - run_parser.add_argument('--different-values', required=True) + run_parser.add_argument('--different-values') run_parser.add_argument( '--stddev', action='store_true', help="report stddev for timings") run_parser.add_argument( @@ -283,7 +288,7 @@ def main(): bisect_parser.add_argument('--symbols', required=True) bisect_parser.add_argument('--zero-frequency') bisect_parser.add_argument('--transitions') - bisect_parser.add_argument('--different-values', required=True) + bisect_parser.add_argument('--different-values') bisect_parser.add_argument('--start-states', type=int, default=50) bisect_parser.add_argument('--good', type=int) bisect_parser.add_argument('--bad', type=int)