def test_axis(self):
        pivot = pd.pivot_table(self.df, rows='gender', cols='town',
                               values=['price', 'count'])

        xaxis = get_axes(pivot.index, 'gender', xaxis=True)
        yaxis = get_axes(pivot.columns, ['price', 'count'])

        self.assertEquals('gender', xaxis.get('title', {}).get('text'))
        self.assertEquals(['man', 'woman'], xaxis.get('categories', ))

        self.assertIsNone(xaxis.get('type'))
        [price, count] = yaxis
        self.assertEquals('price', price.get('title', {}).get('text'))
        self.assertEquals('count', count.get('title', {}).get('text'))

        [price_ba, price_ke, count_ba, count_ke] = get_series(pivot, yaxis)
        self.assertEquals(0, price_ba.get('yAxis'))
        self.assertEquals('price / BA', price_ba.get('name'))
        self.assertEquals(0, price_ke.get('yAxis'))
        self.assertEquals('price / KE', price_ke.get('name'))

        self.assertEquals(1, count_ba.get('yAxis'))
        self.assertEquals('count / BA', count_ba.get('name'))
        self.assertEquals(1, count_ke.get('yAxis'))
        self.assertEquals('count / KE', count_ke.get('name'))
    def test_axis(self):
        pivot = pd.pivot_table(self.df,
                               rows='gender',
                               cols='town',
                               values=['price', 'count'])

        xaxis = get_axes(pivot.index, 'gender', xaxis=True)
        yaxis = get_axes(pivot.columns, ['price', 'count'])

        self.assertEquals('gender', xaxis.get('title', {}).get('text'))
        self.assertEquals(['man', 'woman'], xaxis.get('categories', ))

        self.assertIsNone(xaxis.get('type'))
        [price, count] = yaxis
        self.assertEquals('price', price.get('title', {}).get('text'))
        self.assertEquals('count', count.get('title', {}).get('text'))

        [price_ba, price_ke, count_ba, count_ke] = get_series(pivot, yaxis)
        self.assertEquals(0, price_ba.get('yAxis'))
        self.assertEquals('price / BA', price_ba.get('name'))
        self.assertEquals(0, price_ke.get('yAxis'))
        self.assertEquals('price / KE', price_ke.get('name'))

        self.assertEquals(1, count_ba.get('yAxis'))
        self.assertEquals('count / BA', count_ba.get('name'))
        self.assertEquals(1, count_ke.get('yAxis'))
        self.assertEquals('count / KE', count_ke.get('name'))
    def test_chart_type(self):
        pivot = pd.pivot_table(self.df, rows='gender',
                               values=['price', 'count'])

        xaxis = get_axes(pivot.index, 'gender', xaxis=True)
        yaxis = get_axes(pivot.columns, ['price', 'count'])

        [count, price] = get_series(pivot, yaxis,
                                    {'count': 'spline', 'price': 'line'})
        self.assertEquals('line', price.get('type'))
        self.assertEquals('spline', count.get('type'))
    def test_series(self):
        pivot = pd.pivot_table(self.df, rows='month', cols='gender',
                               values='price')

        [man, woman] = get_series(pivot, [])
        self.assertEquals('man', man['name'])
        self.assertEquals([(unix_time_millis(date(2010, 1, 1)), 1.0),
                           (unix_time_millis(date(2010, 2, 1)), 1.0)],
                          man['data'])

        self.assertEquals('woman', woman['name'])
        self.assertEquals([(unix_time_millis(date(2010, 1, 1)), 1.0),
                           (unix_time_millis(date(2010, 2, 1)), 0)],
                          woman['data'])
    def test_chart_type(self):
        pivot = pd.pivot_table(self.df,
                               rows='gender',
                               values=['price', 'count'])

        xaxis = get_axes(pivot.index, 'gender', xaxis=True)
        yaxis = get_axes(pivot.columns, ['price', 'count'])

        [count, price] = get_series(pivot, yaxis, {
            'count': 'spline',
            'price': 'line'
        })
        self.assertEquals('line', price.get('type'))
        self.assertEquals('spline', count.get('type'))
    def test_series(self):
        pivot = pd.pivot_table(self.df,
                               rows='month',
                               cols='gender',
                               values='price')

        [man, woman] = get_series(pivot, [])
        self.assertEquals('man', man['name'])
        self.assertEquals([(unix_time_millis(date(2010, 1, 1)), 1.0),
                           (unix_time_millis(date(2010, 2, 1)), 1.0)],
                          man['data'])

        self.assertEquals('woman', woman['name'])
        self.assertEquals([(unix_time_millis(date(2010, 1, 1)), 1.0),
                           (unix_time_millis(date(2010, 2, 1)), 0)],
                          woman['data'])
    def test_series_nondate(self):
        pivot = pd.pivot_table(self.df, rows='gender', cols='town',
                               values='price')

        xaxis = get_axes(pivot.index, 'gender', xaxis=True)
        yaxis = get_axes(pivot.columns, 'price')

        self.assertEquals('gender', xaxis.get('title', {}).get('text'))
        self.assertEquals(['man', 'woman'], xaxis.get('categories', ))

        self.assertIsNone(xaxis.get('type'))
        self.assertEquals('price', yaxis.get('title', {}).get('text'))

        [ba, ke] = get_series(pivot, yaxis)
        self.assertEquals('BA', ba['name'])
        self.assertEquals([1, 1], ba['data'])
        self.assertEquals(None, ba.get('yAxis'))

        self.assertEquals('KE', ke['name'])
        self.assertEquals([1, 0], ke['data'])
        self.assertEquals(None, ke.get('yAxis'))
    def test_series_nondate(self):
        pivot = pd.pivot_table(self.df,
                               rows='gender',
                               cols='town',
                               values='price')

        xaxis = get_axes(pivot.index, 'gender', xaxis=True)
        yaxis = get_axes(pivot.columns, 'price')

        self.assertEquals('gender', xaxis.get('title', {}).get('text'))
        self.assertEquals(['man', 'woman'], xaxis.get('categories', ))

        self.assertIsNone(xaxis.get('type'))
        self.assertEquals('price', yaxis.get('title', {}).get('text'))

        [ba, ke] = get_series(pivot, yaxis)
        self.assertEquals('BA', ba['name'])
        self.assertEquals([1, 1], ba['data'])
        self.assertEquals(None, ba.get('yAxis'))

        self.assertEquals('KE', ke['name'])
        self.assertEquals([1, 0], ke['data'])
        self.assertEquals(None, ke.get('yAxis'))