Próbuję zrobić test. Wyniki "Oczekiwane" i "Uzyskane" są identyczne, ale mój test nadal nie udaje się. Zawodzi, ponieważ na wydruku są spacje końcowe po x-axis y-axis
, których nie umieściłem w moim docstringu. Jak jednak to uwzględnić? Kiedy wstawiam spacje ręcznie i wykonuję test, działa z powodzeniem tak długo, jak długo utrzymuję tam kursor.Jak wstawiać spacje końcowe w doctest, aby nie zawodziły, nawet jeśli rzeczywisty i oczekiwany rezultat wygląda tak samo?
oś X oś y ______________________ [kursor tutaj]
Jednakże, jeśli uruchomić test z moim kursor gdzieś indziej, wówczas końcowe spacje zostaną usunięte, a test nie powiedzie się.
Wiem, że brzmi to naprawdę dziwnie, ale tak właśnie jest!
Jest to kod:
import pandas as pd
import doctest
class NewDataStructure(pd.DataFrame):
"""
>>> arrays = [[1, 1, 2, 2], [10, 20, 10, 20]]
>>> index = pd.MultiIndex.from_arrays(arrays, names=('x-axis', 'y-axis'))
>>> data_input = {"Pressure (Pa)": [1+1j, 2+2j, 3+3j, 4+4j],
... "Temperature": [1, 2, 3, 4]}
>>> new_data_variable = NewDataStructure(data=data_input, index=index, title="Pressures and temperatures")
>>> print new_data_variable
New Data Structure Pressures and temperatures:
Pressure (Pa) Temperature
x-axis y-axis
1 10 (1+1j) 1
20 (2+2j) 2
2 10 (3+3j) 3
20 (4+4j) 4
"""
def __init__(self, data, index, title):
super(NewDataStructure, self).__init__(data=data, index=index)
self.title = title
def __str__(self):
return "New Data Structure {}:\n{}".format(self.title, super(NewDataStructure, self).__str__())
doctest.testmod()
Poniżej jest mój wynik, jeśli nie powiedzie się. Nawet tutaj powinieneś być w stanie wybrać obszar po x-axis y-axis
i wykryć, czy są spacje końcowe, czy nie.
Failed example:
print new_data_variable
Expected:
New Data Structure Pressures and temperatures:
Pressure (Pa) Temperature
x-axis y-axis
1 10 (1+1j) 1
20 (2+2j) 2
2 10 (3+3j) 3
20 (4+4j) 4
Got:
New Data Structure Pressures and temperatures:
Pressure (Pa) Temperature
x-axis y-axis
1 10 (1+1j) 1
20 (2+2j) 2
2 10 (3+3j) 3
20 (4+4j) 4
'ponieważ przestrzenie są usuwane o zapisywaniu scenariusza. Co? –
@MadPhysicist Poprawiłem moje pytanie. – bluprince13
czy to twój własny kod, który tworzy stół? Jeśli tak, to pomiń końcowe spacje na wyjściu. –