interesting, yours 'looks right' but I think its wrong... isnt the slope caused by the fact that there is a time between point 15 and 0, so read interp will create a slope
look at what happens if you use your example and create a square wave.
your scaling now makes it asymmetric, because the slope is eradicated by your scaling the end to start transition, but other instant transitions are not...
the non scaled version, sure doesn't look square (due to read interp slope) but it does look symmetrical.
EDIT: another thing to illustrate the point, try with table/read (non-interp) and you'll see its 'correct', so essentially what we are seeing here is the 'issue' with 'rounding' a low resolution wave, sure it rounds nicely some bits of the wave, but it doesn't know where you want to keep 'sharp transitions', it smooths those as well.