def test_project(self): scale = leather.Linear(0, 10) self.assertEqual(scale.project(2, 0, 20), 4) self.assertEqual(scale.project(10, 0, 40), 40) self.assertEqual(scale.project(5, 10, 40), 25) self.assertEqual(scale.project(5, 10, 41), 25.5) scale = leather.Linear(10, 40) self.assertEqual(scale.project(25, 0, 10), 5) self.assertEqual(scale.project(4, 0, 20), -4) scale = leather.Linear(-10, 10) self.assertEqual(scale.project(0, 0, 10), 5) self.assertEqual(scale.project(-10, -5, 10), -5) scale = leather.Linear(-20, -10) self.assertEqual(scale.project(-15, 0, 10), 5) self.assertEqual(scale.project(-10, -5, 10), 10) with self.assertRaises(ValueError): leather.Linear(10, 0)
def test_set_scales(self): chart = leather.Chart() chart.set_x_scale(leather.Linear(0, 20)) chart.set_y_scale(leather.Linear(0, 20)) chart.add_dots(self.data1) svg = self.render_chart(chart) self.assertTickLabels(svg, 'left', ['5', '10', '15', '20', '0']) self.assertTickLabels(svg, 'bottom', ['5', '10', '15', '20', '0'])
def test_contains(self): scale = leather.Linear(-5, 5) self.assertTrue(scale.contains(-5)) self.assertTrue(scale.contains(0)) self.assertTrue(scale.contains(5)) self.assertFalse(scale.contains(-6)) self.assertFalse(scale.contains(6))
def test_zeros(self): series = leather.Series([(0, 'foo'), (0, None), (0, 'bing')]) linear = leather.Linear(0, 0) group = self.shape.to_svg(200, 100, linear, self.ordinal, series, self.palette) rects = list(group) self.assertEqual(len(rects), 2) self.assertEqual(float(rects[1].get('x')), 0) self.assertEqual(float(rects[1].get('width')), 0)
def test_decimal(self): scale = leather.Linear(Decimal(0), Decimal(10)) self.assertEqual(scale.project(Decimal(2), Decimal(0), Decimal(20)), Decimal(4)) self.assertEqual(scale.project(Decimal(10), Decimal(0), Decimal(40)), Decimal(40)) self.assertEqual(scale.project(Decimal(5), Decimal(10), Decimal(40)), Decimal(25)) self.assertEqual(scale.project(Decimal(5), Decimal(10), Decimal(41)), Decimal(25.5)) self.assertEqual(scale.ticks()[1], Decimal(2.5))
def test_ticks(self): scale = leather.Linear(0, 10) self.assertEqual(scale.ticks(), [0, 2.5, 5, 7.5, 10])
def setUp(self): self.shape = leather.Dots('red') self.linear = leather.Linear(0, 10) self.ordinal = leather.Ordinal(['foo', 'bar', 'bing']) self.palette = (color for color in ['red', 'white', 'blue'])
def test_no_spread(self): scale = leather.Linear(0, 0) self.assertEqual(scale.project(0, 0, 10), 0) self.assertEqual(scale.project(1, 0, 10), 10)
def setUp(self): self.shape = leather.Dots('red') self.linear = leather.Linear(0, 10) self.ordinal = leather.Ordinal(['foo', 'bar', 'bing'])