from evaluator import *
DESCRIPTION = "Test if the model can write a bash script that renames files with a specific pattern."
TAGS = ['code', 'bash']
question = """
Write a bash script to rename all files of the form "merged_*" to "finished_*". I want to call it by running bash rename.sh /path/to/files.
"""
def setup_fn():
import os
import time
os.mkdir("./foo")
time.sleep(.5)
for i in range(10):
with open("./foo/merged_{}".format(i), "w") as f:
f.write("a"*i)
with open("./foo/{}".format(i), "w") as f:
f.write("a"*i)
time.sleep(.5)
def check_ok():
import os
return sorted(os.listdir("foo")) == sorted(["finished_{}".format(i) for i in range(10)] + [str(i) for i in range(10)])
TestBashRenamer = Setup(setup_fn) >> question >> LLMRun() >> ExtractCode() >> BashRun(args=["foo/"]) >> PyEvaluator(check_ok)
if __name__ == "__main__":
print(run_test(TestBashRenamer))