}
public void testBothTabAndCarriageReturn() {
calculator.handleDocumentChange(indentAndCarriageReturnDocument);
LineInfo lineTwo = SearchTestsUtil.gotoLineInfo(indentAndCarriageReturnDocument, 2);
double x = assertReversibleAndReturnX(lineTwo.line(), 1);
assertWideChars(1, 1, x);
x = assertReversibleAndReturnX(lineTwo.line(), 2);
assertWideChars(2, 1, x);
x = assertReversibleAndReturnX(lineTwo.line(), 10);
assertWideChars(10, 1, x);
// Test offset due to carriage return is correct
int length = lineTwo.line().length();
x = assertReversibleAndReturnX(lineTwo.line(), length - 3);
assertWideCharsAndZeroWidthChars(length - 3, 1, 0, x);
x = assertReversibleAndReturnXAccountingForZeroWidth(lineTwo.line(), length - 2, 1);
assertWideCharsAndZeroWidthChars(length - 2, 1, 0, x);
x = assertReversibleAndReturnX(lineTwo.line(), length - 1);
assertWideCharsAndZeroWidthChars(length - 1, 1, 1, x);
}