Исследование в области TDD

Вы можете векторизовать это с помощью groupby, apply и mean:

def AB_weighted(g):
   return (g['A'] * g['B']).sum() / g['B'].sum()

g = df.groupby(df.index.date)
pd.concat([g.apply(AB_weighted), g['C'].mean()], keys=['A', 'C'], axis=1)

                   A    C
2017-09-18  1.000018  250
2017-09-19  1.000030  300
  • Нам нужно apply для первого условия, поскольку при групповом вычислении используются несколько столбцов - «А» и «Б».
  • Для вычисления среднего значения «C» требуется только «C», поэтому мы можем сократить время с помощью mean().

Другой вариант - вычисление произведения до groupby, поэтому мы можем обойти вызов apply (это немного похоже на второй ответ @WB), но с одним вызовом sum.

u = df.assign(D=df['A'] * df['B'])[['D', 'B']].groupby(df.index.date).sum()
u['A'] = u.pop('D') / u.pop('B')

u['C'] = df.groupby(df.index.date)['C'].mean()

u
                   A    C
2017-09-18  1.000018  250
2017-09-19  1.000030  300
10
задан skaffman 24 July 2011 в 15:58
поделиться

2 ответа

На эффективности теста сначала приближаются к программированию, Hakan Erdogmus, Maurizio Morisio и Marco Torchiano.

Несмотря на имя это покрывает TDD:

Краткий обзор:

Разработка через тестирование (TDD) основана на формализации части функциональности как тест, реализация функциональности, таким образом, что тест передает, и итерация процесса.

Данная статья описывает управляемый эксперимент для оценки важного аспекта TDD: В TDD программисты пишут функциональные испытания перед соответствующим кодом реализации. Эксперимент проводился со студентами бакалавриата. В то время как группа эксперимента применила тест первая стратегия, контрольная группа применила более стандартный метод разработки, пишущий тесты после реализации. Обе группы следовали за возрастающим процессом, добавляя новые опции по одному и регрессионное тестирование их.

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

7
ответ дан 4 December 2019 в 01:03
поделиться

Цифровая библиотека ACM имеет довольно много статей о TDD. Просто Поиск Разработки через тестирование.

Вершина следует из научного исследования Разработки через тестирование Google:

Разработка через тестирование: понятия, таксономия и будущее направление в обществе эпохи компьютеризации IEEE.

Улучшение программной архитектуры через TDD в ACM

4
ответ дан 4 December 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: