anon-iclr-submission/benchname-bug-localization huggingface dataset:
Repository: robojackets/robocup-software
Issue: Two side attack play doesn't consider passing

When the center robot has the ball at the beginning of the play, it should consider whether to pass to the left robot up the field, the right robot up the field, or take a direct shot on goal, if available. Right now, the center robot always takes a shot on goal even if an opposing robot is directly between it and the goal and passing to the outside would be a much better option.

Changed files:
soccer/gameplay/plays/offense/two_side_attack.py

diff --git a/soccer/gameplay/plays/offense/two_side_attack.py b/soccer/gameplay/plays/offense/two_side_attack.py
index c11d7b154a..1d692553a1 100644
--- a/soccer/gameplay/plays/offense/two_side_attack.py
+++ b/soccer/gameplay/plays/offense/two_side_attack.py
@@ -46,7 +46,8 @@ class TwoSideAttack(standard_play.StandardPlay):
 
         self.add_transition(
             TwoSideAttack.State.passing, TwoSideAttack.State.kicking,
-            lambda: not 'pass' in [self.subbehaviors_by_name] or self.self.subbehavior_with_name('pass').state == behavior.Behavior.State.completed,
+            lambda: (not self.has_subbehavior_with_name('pass') or
+                     self.subbehavior_with_name('pass').state == behavior.Behavior.State.completed),
             'Pass completed')
 
         self.add_transition(
Repository: robojackets/robocup-software
Issue: Fix get_closest_opponent

The python function get_closest_opponent in soccer/gameplay/evaluation/opponent.py does not work as intended. It is supposed to return the closest opponent to a given position. It fails when the directional weight=1 and the position.y > robot.position.y, returning its distance to the point as 0 when it is not
Edit: Also, does not check whether the bot is included in excluded_robots

Changed files:
soccer/gameplay/evaluation/opponent.py

diff --git a/soccer/gameplay/evaluation/opponent.py b/soccer/gameplay/evaluation/opponent.py
index 9bea4fc0e2..6cd85af4f9 100644
--- a/soccer/gameplay/evaluation/opponent.py
+++ b/soccer/gameplay/evaluation/opponent.py
@@ -45,19 +45,20 @@ def num_on_offense():
 
 ## Returns the closest opponent to the pos inclusive of the directional weight
 #
-# @param direction_weight: How much to weight the positive y direction
+# @param direction_weight: How much to weight the positive y direction,
+#     0 <= direction weight <= 2
 #     If < 1, then robots < pos.y are weighted by direction_weight
 def get_closest_opponent(pos, direction_weight=1, excluded_robots=[]):
 
     closest_bot, closest_dist = None, float("inf")
     for bot in main.their_robots():
-        if bot.visible:
+        if bot.visible and bot not in excluded_robots:
             dist = (bot.pos - pos).mag()
 
             if (pos.y <= bot.pos.y):
-                dist *= direction_weight
+                dist *= (2 - direction_weight / 2)
             else:
-                dist *= (1 - direction_weight)
+                dist *= (2 + direction_weight / 2)
 
             if dist < closest_dist:
                 closest_bot = bot
Repository: sosy-lab/benchexec
Issue: Indentation seems broken

I am currently missing the indend between filename and result in benchexecs output: 

````
monteverdi UAutomizer-linux # ../../../../benchexec/bin/benchexec ../benchexec/benchexec-automizer-small.xml --no-container --no-compress-results

executing run set 'Test.CFI'     (5 files)
08:00:58   ../../../trunk/examples/svcomp/ssh-simplified/s3_clnt_1_true-unreach-call.cil.cTIMEOUT                  60.12   33.63
08:01:33   ../../../trunk/examples/svcomp/ssh-simplified/s3_clnt_1_false-unreach-call.cil.cfalse(unreach-call)      27.52   14.31
08:01:47   ../../../trunk/examples/svcomp/loop-acceleration/array_true-unreach-call3_true-termination.itrue                     11.16    5.81
08:01:53   ../../../trunk/examples/svcomp/loop-acceleration/simple_false-unreach-call2_true-termination.ifalse(unreach-call)       6.69    3.45
08:01:57   ../../../trunk/examples/svcomp/loop-acceleration/multivar_true-unreach-call1_true-termination.itrue                      7.08    3.38
[...]
````

For me, it still worked on c2388e740d39bb5b9fc002cce4f75679d72c94a5

Changed files:
benchexec/outputhandler.py

diff --git a/benchexec/outputhandler.py b/benchexec/outputhandler.py
index 9c3c3d84..6459dbed 100644
--- a/benchexec/outputhandler.py
+++ b/benchexec/outputhandler.py
@@ -284,10 +284,12 @@ class OutputHandler(object):
         """
         xml_file_name = self.get_filename(runSet.name, "xml")
 
-        identifier_names = [util.relative_path(run.identifier, xml_file_name) for run in runSet.runs]
+        identifier_names = [run.identifier for run in runSet.runs]
 
         # common prefix of file names
-        runSet.common_prefix = util.common_base_dir(identifier_names) + os.path.sep
+        runSet.common_prefix = util.common_base_dir(identifier_names)
+        if runSet.common_prefix:
+            runSet.common_prefix += os.path.sep
 
         # length of the first column in terminal
         runSet.max_length_of_filename = max(len(file) for file in identifier_names) if identifier_names else 20
Repository: sosy-lab/benchexec
Issue: Replacing numbers in statistic tex output doesn't work for all numbers

https://github.com/sosy-lab/benchexec/blob/41965278c9c2cc706218ee0b50c7ae4e89bb3eeb/benchexec/tablegenerator/statisticstex.py#L124

The current regex which should match any number in a latex command doesn't detect all numbers. 
I guess it should be someting like `"\\d+"`.

I have encountered this problem with with the benchmarkname "portfolio-parallel-2-complete". The 2 wasn't formatted to II
I'm happy to submit a PR to fix this problem. But I'm not sure, if I'm missing something

Changed files:
benchexec/tablegenerator/statisticstex.py

diff --git a/benchexec/tablegenerator/statisticstex.py b/benchexec/tablegenerator/statisticstex.py
index 4e479a92..bf286987 100644
--- a/benchexec/tablegenerator/statisticstex.py
+++ b/benchexec/tablegenerator/statisticstex.py
@@ -121,7 +121,10 @@ class LatexCommand:
     @staticmethod
     def format_command_part(name: str) -> str:
         name = re.sub(
-            "^[1-9]+$", lambda match: util.number_to_roman_string(match.group()), name
+            # Matches only positive numbers, because 0 can't be converted to roman number
+            "[1-9]\\\\d*",
+            lambda match: util.number_to_roman_string(match.group()),
+            name,
         )
 
         name = re.split("[^a-zA-Z]", name)