Exemple #1
0
def test_atomic_plot_event_callbacks():
    plot = Plot()
    for event_cls in [events.LODStart, events.LODEnd]:
        test_callback = EventCallback()
        plot.on_event(event_cls, test_callback)
        assert test_callback.event_name == None
        plot._trigger_event(event_cls(plot))
        assert test_callback.event_name == event_cls.event_name
Exemple #2
0
def test_atomic_plot_event_callbacks():
    plot = Plot()
    for event_cls in [events.LODStart, events.LODEnd]:
        test_callback = EventCallback()
        plot.on_event(event_cls, test_callback)
        assert test_callback.event_name == None
        plot._trigger_event(event_cls(plot))
        assert test_callback.event_name == event_cls.event_name
Exemple #3
0
def test_pinch_callbacks():
    plot = Plot()
    payload = dict(sx=3, sy=-2, x=10, y=100, scale=42)
    test_callback = EventCallback(['sx', 'sy', 'x', 'y', 'scale'])
    plot.on_event(events.Pinch, test_callback)
    assert test_callback.event_name == None
    plot._trigger_event(events.Pinch(plot, **payload))
    assert test_callback.event_name == events.Pinch.event_name
    assert test_callback.payload == payload
Exemple #4
0
def test_pan_callbacks():
    plot = Plot()
    payload = dict(sx=3, sy=-2, x=10, y=100, delta_x=2, delta_y=3.2)
    test_callback = EventCallback(['sx', 'sy', 'x', 'y', 'delta_x', 'delta_y'])
    plot.on_event(events.Pan, test_callback)
    assert test_callback.event_name == None
    plot._trigger_event(events.Pan(plot, **payload))
    assert test_callback.event_name == events.Pan.event_name
    assert test_callback.payload == payload
Exemple #5
0
def test_mousewheel_callbacks():
    plot = Plot()
    payload = dict(sx=3, sy=-2, x=10, y=100, delta=5)
    test_callback = EventCallback(['sx', 'sy', 'x', 'y', 'delta'])
    plot.on_event(events.MouseWheel, test_callback)
    assert test_callback.event_name == None
    plot._trigger_event(events.MouseWheel(plot, **payload))
    assert test_callback.event_name == events.MouseWheel.event_name
    assert test_callback.payload == payload
Exemple #6
0
def test_pinch_callbacks():
    plot = Plot()
    payload = dict(sx=3, sy=-2, x=10, y=100, scale=42)
    test_callback = EventCallback(['sx','sy','x','y', 'scale'])
    plot.on_event(events.Pinch, test_callback)
    assert test_callback.event_name == None
    plot._trigger_event(events.Pinch(plot, **payload))
    assert test_callback.event_name == events.Pinch.event_name
    assert test_callback.payload == payload
Exemple #7
0
def test_pan_callbacks():
    plot = Plot()
    payload = dict(sx=3, sy=-2, x=10, y=100, delta_x=2, delta_y=3.2)
    test_callback = EventCallback(['sx','sy','x','y', 'delta_x', 'delta_y'])
    plot.on_event(events.Pan, test_callback)
    assert test_callback.event_name == None
    plot._trigger_event(events.Pan(plot, **payload))
    assert test_callback.event_name == events.Pan.event_name
    assert test_callback.payload == payload
Exemple #8
0
def test_mousewheel_callbacks():
    plot = Plot()
    payload = dict(sx=3, sy=-2, x=10, y=100, delta=5)
    test_callback = EventCallback(['sx','sy','x','y', 'delta'])
    plot.on_event(events.MouseWheel, test_callback)
    assert test_callback.event_name == None
    plot._trigger_event(events.MouseWheel(plot, **payload))
    assert test_callback.event_name == events.MouseWheel.event_name
    assert test_callback.payload == payload
Exemple #9
0
def test_pointevent_callbacks():
    plot = Plot()
    payload = dict(sx=3, sy=-2, x=10, y=100)
    for event_cls in point_events:
        test_callback = EventCallback(['sx', 'sy', 'x', 'y'])
        plot.on_event(event_cls, test_callback)
        assert test_callback.event_name == None
        plot._trigger_event(event_cls(plot, **payload))
        assert test_callback.event_name == event_cls.event_name
        assert test_callback.payload == payload
Exemple #10
0
def test_pointevent_callbacks():
    plot = Plot()
    payload = dict(sx=3, sy=-2, x=10, y=100)
    for event_cls in point_events:
        test_callback = EventCallback(['sx','sy','x','y'])
        plot.on_event(event_cls, test_callback)
        assert test_callback.event_name == None
        plot._trigger_event(event_cls(plot, **payload))
        assert test_callback.event_name == event_cls.event_name
        assert test_callback.payload == payload
Exemple #11
0
                       end=RADIUS_MAX,
                       step=RADIUS_STEP,
                       sizing_mode="scale_width",
                       height=WIDGET_HEIGHT,
                       show_value=False)
radius_slider.on_change('value', lambda attr, old, new: set_radius(new))

power_readout = Div(sizing_mode="scale_width", height=WIDGET_HEIGHT)

instructions = Div(
    text=
    '<p><strong>Click in the window to add a point to the mesh!</strong> Each point will collect current and send it along with a wire to one of its neighbors.</p><p><strong>Double click in the window to add a "sink" to the mesh.</strong> Sinks cost some power but they serve as targets for the rest of the mesh. To use the power generated by the cell, electricity must get routed to a sink. Sinks appear as triangles in the simulation; one will be placed randomly every time you generate a new mesh.</p><p>Click "Solve Grid" to have the simulation find the best grid pattern it can. The grid tends to form large trunks because thicker, taller wires are more efficient!<p/>'
)

# Why callback so slow? <shakes fist at Bokeh>
plot.on_event(Tap, add_point)
plot.on_event(DoubleTap, lambda event: add_point(event, sink=True))

init_buttons = row(square_button, hex_button, rand_mesh_button)
controls = column(power_readout,
                  init_buttons,
                  res_slider,
                  radius_slider,
                  clear_button,
                  rand_button,
                  step_button,
                  solve_button,
                  instructions,
                  width=CONTROL_WIDTH)
final_form = row(controls, plot)