Пример #1
0
def test_valuecounts():

    table = (('foo', 'bar'), ('a', 1), ('b', 2), ('b', 7))
    actual = valuecounts(table, 'foo')
    expect = (('foo', 'count', 'frequency'), ('b', 2, 2./3), ('a', 1, 1./3))
    ieq(expect, actual)
    ieq(expect, actual)
Пример #2
0
def counts(request, uuid):
    try:
        csvdownload = CSVDownload.objects.get(uuid=uuid)
    except CSVDownload.DoesNotExist:
        return HttpResponseNotFound("Not found.")

    fname = '{0}.csv'.format(csvdownload.uuid)
    full_fname = os.path.join(settings.CSV_DIR, fname)
    people = fromcsv(full_fname)

    columns_str = request.GET.get('columns', '')
    columns = sorted([c for c in columns_str.split(',') if c.strip()])
    for column in columns:
        if column not in header(people):
            return HttpResponseBadRequest('Bad request.')
    if not columns:
        return redirect(to=reverse('people_list', kwargs={'uuid': uuid}))

    counts = valuecounts(people, *columns)
    counts = cutout(counts, 'frequency')

    return render(
        request, 'counts.html', {
            'csvdownload': csvdownload,
            'columns': header(people),
            'headers': header(counts),
            'counts': data(counts),
            'queryparams': {
                'columns': columns
            }
        })
Пример #3
0
def test_valuecounts_multifields():

    table = (('foo', 'bar', 'baz'),
             ('a', True, .12),
             ('a', True, .17),
             ('b', False, .34),
             ('b', False, .44),
             ('b',),
             ('b', False, .56))
    actual = valuecounts(table, 'foo', 'bar')
    expect = (('foo', 'bar', 'count', 'frequency'),
              ('b', False, 3, 3./6),
              ('a', True, 2, 2./6),
              ('b', None, 1, 1./6))
    ieq(expect, actual)
    ieq(expect, actual)
Пример #4
0
def test_valuecounts_shortrows():

    table = (('foo', 'bar'),
             ('a', True),
             ('x', True),
             ('b',),
             ('b', True),
             ('c', False),
             ('z', False))
    actual = valuecounts(table, 'bar')
    expect = (('bar', 'count', 'frequency'),
              (True, 3, 3./6),
              (False, 2, 2./6),
              (None, 1, 1./6))
    ieq(expect, actual)
    ieq(expect, actual)