Я пишу код Python, который будет писать входные файлы для другой программы.У меня есть набор тестов, и я обнаружил, что тесты иногда не выполняются, потому что в записываемых строках могут отсутствовать символы или использовать «e» вместо «E» для обозначения числа с плавающей запятой.Но эти неудачи кажутся случайными.
Я понятия не имею, как решить эту проблему, я погуглил и, похоже, не могу найти никаких результатов, соответствующих моей проблеме.
Вот результаты двух запусков модульного теста без изменений кода между ними:
..................................................................................
----------------------------------------------------------------------
Ran 82 tests in 0.019s
OK
Затем сбои в виде вывода различий (пробелы заменены на `):
< Begin feti equation solver feti
< End feti equation solver feti
---
> Begin feti equation_solver feti
> End feti equation_solver feti
и
< tolerance = 1E-06
---
> tolerance = 1e-06
Вот метод записи, который записывает эти отрывки:
def write(self,f,indent):
# if this term is not active do not write anything
if not self._active:
return()
line = " " * indent
for idx,item in enumerate(self._my_values):
if item is None:
continue
if idx != 0:
line+=" "
if self._use_symbol and idx == self._symbol_location:
line += self._symbol+" "
line += str(item)
line += "\n"
f.write(line)
_my_values - это список строк, целых чисел или чисел с плавающей запятой._symbol - это строка, часто "=".
Мне бы хотелось, чтобы тесты работали согласованно.В то время как «е» против «Е» не имеет большого значения, изменение в подчеркиваниях действительно есть.
Спасибо за помощь.