Python, Unittest + Pandas DataFrames: может ли этот тест утверждения = значение bool (без получения ValueError)? - PullRequest
0 голосов
/ 20 апреля 2019

Я создаю класс, основанный только на выводах, которые я собираю, просматривая предварительно написанные тестовые примеры Unittest. Unittest проверит мой класс и выполнит проверку утверждений относительно его функций.

Я не могу изменить проверки утверждений : я их не писал.

Я не настолько продвинут, как Юнитест или Панды, я все еще сомневаюсь, могут ли какие-то из предварительно написанных тестов утверждений возвращать Истину ... или даже Ложь. Я здесь, чтобы выделить только один на данный момент. Я хотел бы знать, есть ли какой-либо способ (например, каким-либо образом, которого я сейчас не вижу), что этот один тестовый случай может когда-либо вернуть либо True, либо False.

Сравнение выполняется, если значение столбца в Pandas DataFrame == какое-то значение. Мол, assertTrue(df['Age'] == 21). Ошибка - которую я полностью понимаю почему я получаю - это ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

Имеет смысл: я возвращаю серию панд, которая возвращает серию bools, а не одно значение. Кроме того, если вы (могли бы даже) использовать методы, упомянутые выше, вы все равно не получите число, а только значение True или False, например False == 21 или True == 21, оба из которых = False.

Тем не менее, из формата проверки утверждения, assertTrue(df['Age'] == 21), похоже, что тест все равно ожидает одно значение.

И если это возможно, У меня нет интуитивного представления, как это можно сделать, чтобы работать. Итак, мой вопрос: это может работать? Это связано с какой-то перегрузкой операторов или как?

Опять же, я считаю себя новичком в Пандах и Юниттесте. Я буду рад предоставить любую другую необходимую информацию, в том числе больше кода, но мой вопрос больше о том, можно ли выполнить вышеупомянутый тест утверждения или нет, и если да, то как к нему можно подойти.

Спасибо!

...