From f323351208b89a04a52bf96ca493b9306cbce3d6 Mon Sep 17 00:00:00 2001 From: Laura Date: Wed, 15 Jan 2025 16:08:25 +0100 Subject: [PATCH 1/2] fixed grammar and import to run Alhazen --- docs/code/Alhazen.py | 2 ++ notebooks/Alhazen.ipynb | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/code/Alhazen.py b/docs/code/Alhazen.py index 3a357397..2af8874c 100755 --- a/docs/code/Alhazen.py +++ b/docs/code/Alhazen.py @@ -191,6 +191,8 @@ def task_sqrt(x): from math import cos as rcos from math import sin as rsin +from numpy import nanmax, isnan + if __name__ == '__main__': """ This file contains the code under test for the example bug. diff --git a/notebooks/Alhazen.ipynb b/notebooks/Alhazen.ipynb index ba4a9ad1..6fd212e9 100644 --- a/notebooks/Alhazen.ipynb +++ b/notebooks/Alhazen.ipynb @@ -2745,11 +2745,11 @@ "metadata": {}, "outputs": [], "source": [ - "def best_trees(forest, spec):\n", + "def best_trees(forest, spec, grammar):\n", " samples = [tree_to_string(tree) for tree in forest]\n", " fulfilled_fractions= []\n", " for sample in samples:\n", - " gen_features = collect_features([sample], CALC_GRAMMAR)\n", + " gen_features = collect_features([sample], grammar)\n", "\n", " # calculate percentage of fulfilled requirements (used to rank the sample)\n", " fulfilled_count = 0\n", @@ -2823,7 +2823,7 @@ " done = False\n", " starttime = time.time()\n", " best_chosen = [fuzzer.fuzz_tree() for _ in range(100)]\n", - " done, best_chosen = best_trees(best_chosen, spec)\n", + " done, best_chosen = best_trees(best_chosen, spec, grammar)\n", " if done:\n", " final_samples.append(tree_to_string(best_chosen))\n", "\n", @@ -2863,7 +2863,7 @@ " curr = s[0]\n", " except SyntaxError:\n", " pass\n", - " done, best_chosen = best_trees(best_chosen, spec)\n", + " done, best_chosen = best_trees(best_chosen, spec, grammar)\n", " if done:\n", " final_samples.append(tree_to_string(best_chosen))\n", " if not done:\n", From 32d2c77863f04841a6b63fb00a082b21895c5245 Mon Sep 17 00:00:00 2001 From: Laura Date: Wed, 15 Jan 2025 16:25:49 +0100 Subject: [PATCH 2/2] ugly fix to run Alhazen --- docs/code/Alhazen.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/code/Alhazen.py b/docs/code/Alhazen.py index 2af8874c..9313efeb 100755 --- a/docs/code/Alhazen.py +++ b/docs/code/Alhazen.py @@ -1647,11 +1647,11 @@ def get_all_input_specifications(dec_tree, import random from itertools import chain -def best_trees(forest, spec): +def best_trees(forest, spec, grammar): samples = [tree_to_string(tree) for tree in forest] fulfilled_fractions= [] for sample in samples: - gen_features = collect_features([sample], CALC_GRAMMAR) + gen_features = collect_features([sample], grammar) # calculate percentage of fulfilled requirements (used to rank the sample) fulfilled_count = 0 @@ -1718,7 +1718,7 @@ def generate_samples_advanced(grammar: Grammar, done = False starttime = time.time() best_chosen = [fuzzer.fuzz_tree() for _ in range(100)] - done, best_chosen = best_trees(best_chosen, spec) + done, best_chosen = best_trees(best_chosen, spec, grammar) if done: final_samples.append(tree_to_string(best_chosen)) @@ -1758,7 +1758,7 @@ def generate_samples_advanced(grammar: Grammar, curr = s[0] except SyntaxError: pass - done, best_chosen = best_trees(best_chosen, spec) + done, best_chosen = best_trees(best_chosen, spec, grammar) if done: final_samples.append(tree_to_string(best_chosen)) if not done: @@ -1775,6 +1775,8 @@ def generate_samples_random(grammar, new_input_specifications, num): return data +generate_samples = generate_samples_advanced + if __name__ == '__main__': generate_samples = generate_samples_advanced