我寫了兩個熊貓函式:
merge_df()
合并兩個資料框。subtract_column()
減去兩列并將值保存在新列中。
我正在嘗試使用以下代碼對功能進行單元測驗:
import unittest
import pandas as pd
from pandas.testing import assert_frame_equal
from scripts import return_calculations as rt
class TestReturnCalculations(unittest.TestCase):
def test_merge_df(self):
# Setup
df1 = pd.DataFrame({
'col_a': ['a1', 'a2', 'a3'],
'col_b': ['b1', 'b2', 'b3'],
})
df2 = pd.DataFrame({
'col_c': ['c1', 'c2', 'c3'],
'col_d': ['d1', 'd2', 'd3'],
})
# Expectation
expected = pd.DataFrame({
'col_a': ['a1', 'a2', 'a3'],
'col_b': ['b1', 'b2', 'b3'],
'col_c': ['c1', 'c2', 'c3'],
'col_d': ['d1', 'd2', 'd3'],
})
# Call function
actual = rt.merge_df(df1, df2)
# Test
assert_frame_equal(actual, expected)
# Test subtraction of two pd columns
def subtract_column(self):
# Setup
df1 = pd.DataFrame({
'col_a': [50, 50, 50],
'col_b': [30, 30, 30],
})
# Expectation
expected = pd.DataFrame({
'col_a': [50, 50, 50],
'col_b': [30, 30, 30],
'col_c': [20, 20, 20],
})
# Call function
actual = rt.subtract_column(df1, 'col_a', 'col_b', 'col_c')
# Test
assert_frame_equal(actual, expected)
if __name__ == "__main__":
unittest.main()
如果我運行腳本,它將完成而沒有錯誤。
問題是:
當我更改“預期結果”資料框以使斷言失敗時。
如果我為第一種方法執行此操作,merge_df()
則會引發錯誤。
但是,如果我為第二種方法執行此操作,subtract_column()
它仍然會顯示:
----------------------------------------------------------------------
Ran 1 test in 0.005s
OK
uj5u.com熱心網友回復:
問題是第二種方法的名稱。
在代碼中是:
def subtract_column(self):
要作業,它需要:
def test_subtract_column(self):
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/504761.html
標籤:Python 熊猫 数据框 单元测试 python-unittest
下一篇:運行松露測驗時出現斷言錯誤