Esempio n. 1
0
def test_categorized_to_from_dict():
    """Test the LegendParametersCategorized to/from dict methods."""
    leg_colors = [Color(0, 0, 255), Color(0, 255, 0), Color(255, 0, 0)]
    leg_par = LegendParametersCategorized([300, 2000], leg_colors)
    leg_par_dict = leg_par.to_dict()
    new_leg_par = LegendParametersCategorized.from_dict(leg_par_dict)
    assert new_leg_par.to_dict() == leg_par_dict
Esempio n. 2
0
def test_init_legend_parameters_categorized():
    """Test the initialization of LegendParametersCategorized objects."""
    leg_colors = [Color(0, 0, 255), Color(0, 255, 0), Color(255, 0, 0)]
    leg_par = LegendParametersCategorized([300, 2000], leg_colors)
    leg_par.decimal_count = 0
    str(leg_par)  # Test the LegendParametersCategorized representation
    hash(leg_par)

    assert leg_par.domain == (300, 2000)
    assert leg_par.colors == tuple(leg_colors)
    assert leg_par.category_names == ('<300', '300 - 2000', '>2000')
    assert leg_par.min == 300
    assert leg_par.max == 2000
    assert leg_par.is_segment_count_default
    assert leg_par.is_title_default
    assert leg_par.is_base_plane_default
    assert leg_par.is_segment_height_default
    assert leg_par.is_segment_width_default
    assert leg_par.is_text_height_default

    leg_par_copy = leg_par.duplicate()
    assert leg_par_copy.domain == leg_par.domain
    assert leg_par_copy.colors == leg_par.colors
    assert leg_par_copy.category_names == leg_par.category_names

    assert leg_par_copy == leg_par
    leg_par_copy.segment_height = 0.5
    assert leg_par_copy != leg_par
Esempio n. 3
0
def test_categorized_category_names():
    """Test the LegendParametersCategorized category_names property."""
    data = [100, 300, 500, 1000, 2000, 3000]
    leg_colors = [Color(0, 0, 255), Color(0, 255, 0), Color(255, 0, 0)]
    legend_par = LegendParametersCategorized([300, 2000], leg_colors)
    cat_names = ['low', 'desired', 'too much']
    legend_par.category_names = cat_names
    legend = Legend(data, legend_par)

    assert legend_par.category_names == tuple(cat_names)
    assert legend.segment_text == tuple(cat_names)

    with pytest.raises(AssertionError):
        legend_par.category_names = [
            'low', 'desired', 'too much', 'not a category'
        ]
Esempio n. 4
0
def test_categorized_colors():
    """Test the LegendParametersCategorized colors property."""
    data = [100, 300, 500, 1000, 2000, 3000]
    leg_colors = [Color(0, 0, 255), Color(0, 255, 0), Color(255, 0, 0)]
    legend_par = LegendParametersCategorized([300, 2000], leg_colors)

    legend = Legend(data, legend_par)
    assert legend.segment_colors == tuple(leg_colors)
    assert legend.value_colors == \
        (Color(0, 0, 255), Color(0, 255, 0), Color(0, 255, 0), Color(0, 255, 0),
         Color(0, 255, 0), Color(255, 0, 0))

    legend.legend_parameters.continuous_colors = True
    assert legend.value_colors == \
        (Color(0, 0, 255), Color(0, 0, 255), Color(0, 60, 195), Color(0, 210, 45),
         Color(255, 0, 0), Color(255, 0, 0))
    from ladybug.legend import LegendParametersCategorized
except ImportError as e:
    raise ImportError('\nFailed to import ladybug:\n\t{}'.format(e))

try:
    from ladybug_rhino.togeometry import to_plane
    from ladybug_rhino.grasshopper import all_required_inputs
except ImportError as e:
    raise ImportError('\nFailed to import ladybug_rhino:\n\t{}'.format(e))

if all_required_inputs(ghenv.Component):
    if base_plane_:
        base_plane_ = to_plane(base_plane_)
    if len(categories_) == 0:
        categories_ = None

    leg_par = LegendParametersCategorized(domain=_domain,
                                          colors=_colors,
                                          category_names=categories_,
                                          base_plane=base_plane_)

    leg_par.continuous_colors = continuous_cols_
    leg_par.continuous_legend = continuous_leg_
    leg_par.decimal_count = num_decimals_
    leg_par.include_larger_smaller = larger_smaller_
    leg_par.vertical = vert_or_horiz_
    leg_par.segment_height = seg_height_
    leg_par.segment_width = seg_width_
    leg_par.text_height = text_height_
    leg_par.font = font_