class TestWedge(unittest.TestCase): def setUp(self): from bokeh.glyphs import Wedge self.test_wedge = Wedge() def test_expected_properties(self): expected_properties = set(['x','y','radius','start_angle','end_angle','direction']) actual_properties = get_prop_set(type(self.test_wedge)) self.assertTrue(expected_properties.issubset(actual_properties)) def test_expected_values(self): self.assertEqual(self.test_wedge.x,'x') self.assertEqual(self.test_wedge.y,'y') self.assertEqual(self.test_wedge.radius,None) self.assertEqual(self.test_wedge.start_angle,'start_angle') self.assertEqual(self.test_wedge.end_angle,'end_angle') self.assertEqual(self.test_wedge.__view_model__,'wedge') self.assertEqual(self.test_wedge.direction,'clock') self.test_wedge.direction = 'anticlock' def test_to_glyphspec(self): self.assertEqual(self.test_wedge.to_glyphspec(), {'line_color': {'value': 'black'}, 'fill_color': {'value': 'gray'}, 'start_angle': {'units': 'data', 'field': 'start_angle'}, 'end_angle': {'units': 'data', 'field': 'end_angle'}, 'radius': {'units': 'data', 'field': None}, 'y': {'units': 'data', 'field': 'y'}, 'x': {'units': 'data', 'field': 'x'}, 'type': 'wedge'}) self.test_wedge.x = 50 self.test_wedge.y = 51 self.test_wedge.radius = 52 self.test_wedge.start_angle = 53 self.test_wedge.end_angle = 54 self.test_wedge.direction = 'anticlock' self.assertEqual(self.test_wedge.to_glyphspec(), {'line_color': {'value': 'black'}, 'direction': 'anticlock', 'fill_color': {'value': 'gray'}, 'start_angle': {'units': 'data', 'value': 53}, 'end_angle': {'units': 'data', 'value': 54}, 'radius': {'units': 'data', 'value': 52}, 'y': {'units': 'data', 'value': 51}, 'x': {'units': 'data', 'value': 50}, 'type': 'wedge'})
class TestWedge(unittest.TestCase): def setUp(self): from bokeh.glyphs import Wedge self.test_wedge = Wedge() def test_expected_properties(self): expected_properties = set(["x", "y", "radius", "start_angle", "end_angle", "direction"]) actual_properties = get_prop_set(type(self.test_wedge)) self.assertTrue(expected_properties.issubset(actual_properties)) def test_expected_values(self): self.assertEqual(self.test_wedge.x, "x") self.assertEqual(self.test_wedge.y, "y") self.assertEqual(self.test_wedge.radius, None) self.assertEqual(self.test_wedge.start_angle, "start_angle") self.assertEqual(self.test_wedge.end_angle, "end_angle") self.assertEqual(self.test_wedge.__view_model__, "wedge") self.assertEqual(self.test_wedge.direction, "clock") self.test_wedge.direction = "anticlock" def test_to_glyphspec(self): expected = dict(GENERIC_GLYPH_DICT) expected["type"] = "wedge" expected.update( { "start_angle": {"units": "data", "field": "start_angle"}, "end_angle": {"units": "data", "field": "end_angle"}, "radius": {"units": "data", "field": None}, } ) self.assertEqual(self.test_wedge.to_glyphspec(), expected) self.test_wedge.x = 50 self.test_wedge.y = 51 self.test_wedge.radius = 52 self.test_wedge.start_angle = 53 self.test_wedge.end_angle = 54 self.test_wedge.direction = "anticlock" expected.update( { "x": {"units": "data", "value": 50}, "y": {"units": "data", "value": 51}, "start_angle": {"units": "data", "value": 53}, "end_angle": {"units": "data", "value": 54}, "radius": {"units": "data", "value": 52}, "direction": "anticlock", } ) self.assertEqual(self.test_wedge.to_glyphspec(), expected)
class TestWedge(unittest.TestCase): def setUp(self): from bokeh.glyphs import Wedge self.test_wedge = Wedge() def test_expected_properties(self): expected_properties = set(['x', 'y', 'radius', 'start_angle', 'end_angle', 'direction']) actual_properties = get_prop_set(type(self.test_wedge)) self.assertTrue(expected_properties.issubset(actual_properties)) def test_expected_values(self): self.assertEqual(self.test_wedge.x, 'x') self.assertEqual(self.test_wedge.y, 'y') self.assertEqual(self.test_wedge.radius, None) self.assertEqual(self.test_wedge.start_angle, 'start_angle') self.assertEqual(self.test_wedge.end_angle, 'end_angle') self.assertEqual(self.test_wedge.__view_model__, 'wedge') self.assertEqual(self.test_wedge.direction, 'clock') self.test_wedge.direction = 'anticlock' def test_to_glyphspec(self): expected = dict(GENERIC_GLYPH_DICT) expected['type'] = 'wedge' expected.update({ 'start_angle': {'units': 'data', 'field': 'start_angle'}, 'end_angle': {'units': 'data', 'field': 'end_angle'}, 'radius': {}, }) self.assertEqual(self.test_wedge.to_glyphspec(), expected) self.test_wedge.x = 50 self.test_wedge.y = 51 self.test_wedge.radius = 52 self.test_wedge.start_angle = 53 self.test_wedge.end_angle = 54 self.test_wedge.direction = 'anticlock' expected.update({ 'x': {'units': 'data', 'value': 50}, 'y': {'units': 'data', 'value': 51}, 'start_angle': {'units': 'data', 'value': 53}, 'end_angle': {'units': 'data', 'value': 54}, 'radius': {'units': 'data', 'value': 52}, 'direction': 'anticlock', }) self.assertEqual(self.test_wedge.to_glyphspec(), expected)
def test_Wedge(): glyph = Wedge() assert glyph.x == "x" assert glyph.y == "y" assert glyph.radius == None assert glyph.start_angle == "start_angle" assert glyph.end_angle == "end_angle" assert glyph.direction == "clock" yield check_fill, glyph yield check_line, glyph yield check_props, glyph, [ "x", "y", "radius", "start_angle", "end_angle", "direction" ], FILL, LINE
def setUp(self): from bokeh.glyphs import Wedge self.test_wedge = Wedge()
y="y", width=screen(10), height=screen(20), angle=-0.7, fill_color="#CAB2D6")), ("segment", Segment(x0="x", y0="y", x1="xm01", y1="ym01", line_color="#F4A582", line_width=3)), ("wedge", Wedge(x="x", y="y", radius=screen(15), start_angle=0.6, end_angle=4.1, fill_color="#B3DE69")), ] markers = [ ("circle", Circle(x="x", y="y", radius=0.1, radius_units="data", fill_color="#3288BD")), ("circle_x", CircleX(x="x", y="y", size="sizes", line_color="#DD1C77", fill_color=None)), ("circle_cross",
class TestWedge(unittest.TestCase): def setUp(self): from bokeh.glyphs import Wedge self.test_wedge = Wedge() def test_expected_properties(self): expected_properties = set( ['x', 'y', 'radius', 'start_angle', 'end_angle', 'direction']) actual_properties = get_prop_set(type(self.test_wedge)) self.assertTrue(expected_properties.issubset(actual_properties)) def test_expected_values(self): self.assertEqual(self.test_wedge.x, 'x') self.assertEqual(self.test_wedge.y, 'y') self.assertEqual(self.test_wedge.radius, None) self.assertEqual(self.test_wedge.start_angle, 'start_angle') self.assertEqual(self.test_wedge.end_angle, 'end_angle') self.assertEqual(self.test_wedge.__view_model__, 'wedge') self.assertEqual(self.test_wedge.direction, 'clock') self.test_wedge.direction = 'anticlock' def test_to_glyphspec(self): expected = dict(GENERIC_GLYPH_DICT) expected['type'] = 'wedge' expected.update({ 'start_angle': { 'units': 'data', 'field': 'start_angle' }, 'end_angle': { 'units': 'data', 'field': 'end_angle' }, 'radius': { 'units': 'data', 'field': None }, }) self.assertEqual(self.test_wedge.to_glyphspec(), expected) self.test_wedge.x = 50 self.test_wedge.y = 51 self.test_wedge.radius = 52 self.test_wedge.start_angle = 53 self.test_wedge.end_angle = 54 self.test_wedge.direction = 'anticlock' expected.update({ 'x': { 'units': 'data', 'value': 50 }, 'y': { 'units': 'data', 'value': 51 }, 'start_angle': { 'units': 'data', 'value': 53 }, 'end_angle': { 'units': 'data', 'value': 54 }, 'radius': { 'units': 'data', 'value': 52 }, 'direction': 'anticlock', }) self.assertEqual(self.test_wedge.to_glyphspec(), expected)
angles = selected.Share.map(radians).cumsum() end_angles = angles.tolist() start_angles = [0] + end_angles[:-1] browsers_source = ColumnDataSource( dict( start=start_angles, end=end_angles, colors=[colors[browser] for browser in browsers], )) glyph = Wedge(x=0, y=0, radius=1, line_color="white", line_width=2, start_angle="start", end_angle="end", fill_color="colors") plot.add_glyph(browsers_source, glyph) def polar_to_cartesian(r, start_angles, end_angles): cartesian = lambda r, alpha: (r * cos(alpha), r * sin(alpha)) points = [] for start, end in zip(start_angles, end_angles): points.append(cartesian(r, (end + start) / 2)) return zip(*points)