AssertEqual Tests OK, wenn Numph.nDarray gegen Str, ist das erwartet? Oder was habe ich falsch gemacht?Python

Python-Programme
Anonymous
 AssertEqual Tests OK, wenn Numph.nDarray gegen Str, ist das erwartet? Oder was habe ich falsch gemacht?

Post by Anonymous »

Mein unittestes kehrt gut zurück, aber als ich meinen Code in der Produktion ausführte, stellte ich fest, dass mein Wert mit quadratischen Klammern „verpackt“ ist. Weitere Untersuchungen zeigen, dass es unter der DF.LOC [] Werte liegt. Ich erwarte einen einzelnen Str -Wert.

Code: Select all

# test class and test code
import pandas as pd
import numpy as np
import unittest

class myclass:
def __init__(self):
mux = pd.MultiIndex.from_arrays([
list('aaaabbbbbccddddd'),
list('tuvwtuvwtuvwtuvw')
], names=['one','two'])
temp_a = np.arange(len(mux))
str_a = [ str(a) for a in temp_a ]
self.df = pd.DataFrame({'col': str_a}, mux)

def get_aw(self):
a = self.df.loc[('a','w')].values
return a

class TestAssert(unittest.TestCase):
def test_assert(self):
myclass_obj = myclass()
result = myclass_obj.get_aw()
expect = '3'
print(type(result))
print(type(expect))
print(f'result:{result}')
print(f'expect:{expect}')
self.assertEqual(result,expect)

if __name__ == '__main__':
unittest.main(verbosity=2)
< /code>
Ergebnisse: (Ich habe erwartet, dass es fehlschlägt) < /p>
test_assert (__main__.TestAssert) ... test_code.py:18: PerformanceWarning: indexing past lexsort depth may impact performance.
a = self.df.loc[('a','w')].values


result:[['3']]   
Ergebnisse: < /p>
test_assert (__main__.TestAssert) ... test_code.py:18: PerformanceWarning: indexing past lexsort depth may impact performance.
a = self.df.loc[('a','w')].values[0][0]


result:3
expect:3
ok

----------------------------------------------------------------------
Ran 1 test in 0.002s

OK

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post