|
2 | 2 | import matplotlib |
3 | 3 | from matplotlib.testing.decorators import image_comparison, knownfailureif |
4 | 4 | import matplotlib.pyplot as plt |
5 | | -from matplotlib import patches, path |
6 | 5 |
|
7 | 6 | from pylab import * |
8 | 7 | import numpy as np |
9 | | -from matplotlib import patches, path |
| 8 | +from matplotlib import patches, path, transforms |
10 | 9 | nan = np.nan |
11 | 10 | Path = path.Path |
12 | 11 |
|
@@ -134,6 +133,38 @@ def test_fft_peaks(): |
134 | 133 |
|
135 | 134 | assert len(simplified) == 13 |
136 | 135 |
|
| 136 | +def test_start_with_moveto(): |
| 137 | + # Should be entirely clipped away to a single MOVETO |
| 138 | + data = """ |
| 139 | +ZwAAAAku+v9UAQAA+Tj6/z8CAADpQ/r/KAMAANlO+v8QBAAAyVn6//UEAAC6ZPr/2gUAAKpv+v+8 |
| 140 | +BgAAm3r6/50HAACLhfr/ewgAAHyQ+v9ZCQAAbZv6/zQKAABepvr/DgsAAE+x+v/lCwAAQLz6/7wM |
| 141 | +AAAxx/r/kA0AACPS+v9jDgAAFN36/zQPAAAF6Pr/AxAAAPfy+v/QEAAA6f36/5wRAADbCPv/ZhIA |
| 142 | +AMwT+/8uEwAAvh77//UTAACwKfv/uRQAAKM0+/98FQAAlT/7/z0WAACHSvv//RYAAHlV+/+7FwAA |
| 143 | +bGD7/3cYAABea/v/MRkAAFF2+//pGQAARIH7/6AaAAA3jPv/VRsAACmX+/8JHAAAHKL7/7ocAAAP |
| 144 | +rfv/ah0AAAO4+/8YHgAA9sL7/8QeAADpzfv/bx8AANzY+/8YIAAA0OP7/78gAADD7vv/ZCEAALf5 |
| 145 | ++/8IIgAAqwT8/6kiAACeD/z/SiMAAJIa/P/oIwAAhiX8/4QkAAB6MPz/HyUAAG47/P+4JQAAYkb8 |
| 146 | +/1AmAABWUfz/5SYAAEpc/P95JwAAPmf8/wsoAAAzcvz/nCgAACd9/P8qKQAAHIj8/7cpAAAQk/z/ |
| 147 | +QyoAAAWe/P/MKgAA+aj8/1QrAADus/z/2isAAOO+/P9eLAAA2Mn8/+AsAADM1Pz/YS0AAMHf/P/g |
| 148 | +LQAAtur8/10uAACr9fz/2C4AAKEA/f9SLwAAlgv9/8ovAACLFv3/QDAAAIAh/f+1MAAAdSz9/ycx |
| 149 | +AABrN/3/mDEAAGBC/f8IMgAAVk39/3UyAABLWP3/4TIAAEFj/f9LMwAANm79/7MzAAAsef3/GjQA |
| 150 | +ACKE/f9+NAAAF4/9/+E0AAANmv3/QzUAAAOl/f+iNQAA+a/9/wA2AADvuv3/XDYAAOXF/f+2NgAA |
| 151 | +29D9/w83AADR2/3/ZjcAAMfm/f+7NwAAvfH9/w44AACz/P3/XzgAAKkH/v+vOAAAnxL+//04AACW |
| 152 | +Hf7/SjkAAIwo/v+UOQAAgjP+/905AAB5Pv7/JDoAAG9J/v9pOgAAZVT+/606AABcX/7/7zoAAFJq |
| 153 | +/v8vOwAASXX+/207AAA/gP7/qjsAADaL/v/lOwAALZb+/x48AAAjof7/VTwAABqs/v+LPAAAELf+ |
| 154 | +/788AAAHwv7/8TwAAP7M/v8hPQAA9df+/1A9AADr4v7/fT0AAOLt/v+oPQAA2fj+/9E9AADQA/// |
| 155 | ++T0AAMYO//8fPgAAvRn//0M+AAC0JP//ZT4AAKsv//+GPgAAojr//6U+AACZRf//wj4AAJBQ///d |
| 156 | +PgAAh1v///c+AAB+Zv//Dz8AAHRx//8lPwAAa3z//zk/AABih///TD8AAFmS//9dPwAAUJ3//2w/ |
| 157 | +AABHqP//ej8AAD6z//+FPwAANb7//48/AAAsyf//lz8AACPU//+ePwAAGt///6M/AAAR6v//pj8A |
| 158 | +AAj1//+nPwAA/////w==""" |
| 159 | + |
| 160 | + verts = np.fromstring(data.decode('base64'), dtype='<i4') |
| 161 | + verts = verts.reshape((len(verts) / 2, 2)) |
| 162 | + path = Path(verts) |
| 163 | + segs = path.iter_segments(transforms.IdentityTransform, clip=(0.0, 0.0, 100.0, 100.0)) |
| 164 | + segs = list(segs) |
| 165 | + assert len(segs) == 1 |
| 166 | + assert segs[0][1] == Path.MOVETO |
| 167 | + |
137 | 168 | if __name__=='__main__': |
138 | 169 | import nose |
139 | 170 | nose.runmodule(argv=['-s','--with-doctest'], exit=False) |
0 commit comments