Skip to content

Commit 4efe548

Browse files
committed
Add tests for multiple label
1 parent b99c8ac commit 4efe548

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

lib/matplotlib/tests/test_legend.py

+69
Original file line numberDiff line numberDiff line change
@@ -671,3 +671,72 @@ def test_no_warn_big_data_when_loc_specified():
671671
ax.plot(np.arange(5000), label=idx)
672672
legend = ax.legend('best')
673673
fig.draw_artist(legend) # Check that no warning is emitted.
674+
675+
676+
def test_plot_multiple_input_multiple_label():
677+
# test ax.plot() with multidimensional input
678+
# and multiple labels
679+
x = [1, 2, 5]
680+
y = [[2, 4, 3], [4, 7, 1], [3, 9, 2]]
681+
682+
label_arrays = [['one', 'two', 'three'],
683+
('one', 'two', 'three'),
684+
np.array(['one', 'two', 'three'])]
685+
686+
for label in label_arrays:
687+
fig, ax = plt.subplots()
688+
ax.plot(x, y, label=label)
689+
leg = ax.legend()
690+
691+
assert len(leg.get_texts()) == 3
692+
assert leg.get_texts()[0].get_text() == 'one'
693+
assert leg.get_texts()[1].get_text() == 'two'
694+
assert leg.get_texts()[2].get_text() == 'three'
695+
696+
697+
def test_plot_multiple_input_single_label():
698+
# test ax.plot() with multidimensional input
699+
# and single label
700+
x = [1, 2, 5]
701+
y = [[2, 4, 3], [4, 7, 1], [3, 9, 2]]
702+
labels = ['one', 1, int]
703+
704+
for label in labels:
705+
fig, ax = plt.subplots()
706+
ax.plot(x, y, label=label)
707+
leg = ax.legend()
708+
709+
assert len(leg.get_texts()) == 3
710+
assert leg.get_texts()[0].get_text() == str(label)
711+
assert leg.get_texts()[1].get_text() == str(label)
712+
assert leg.get_texts()[2].get_text() == str(label)
713+
714+
715+
def test_plot_single_input_multiple_label():
716+
# test ax.plot() with 1D array like input
717+
# and iterable label
718+
x = [1, 2, 5]
719+
y = [2, 4, 3]
720+
721+
label_arrays = [['one', 'two', 'three'],
722+
('one', 'two', 'three'),
723+
np.array(['one', 'two', 'three'])]
724+
725+
for label in label_arrays:
726+
fig, ax = plt.subplots()
727+
ax.plot(x, y, label=label)
728+
leg = ax.legend()
729+
730+
assert len(leg.get_texts()) == 1
731+
assert leg.get_texts()[0].get_text() == str(label)
732+
733+
734+
def test_plot_multiple_label_incorrect_length_exception():
735+
# check that exception is raised for
736+
# iterable label with incorrect length
737+
with pytest.raises(Exception):
738+
x = [1, 2, 5]
739+
y = [[2, 4, 3], [4, 7, 1], [3, 9, 2]]
740+
label = ['one', 'two']
741+
fig, ax = plt.subplots()
742+
ax.plot(x, y, label=label)

0 commit comments

Comments
 (0)