public void ConvertPointToRenderDataOffset_ShouldWork() { InitializeTestData(); PSConsoleReadLine instance = GetPSConsoleReadLineSingleton(); foreach (ResizingTestData test in s_resizingTestData) { RenderData renderData = new() { lines = new RenderedLineData[test.Lines.Count], bufferWidth = test.OldBufferWidth }; for (int i = 0; i < test.Lines.Count; i++) { renderData.lines[i] = new RenderedLineData(test.Lines[i], isFirstLogicalLine: i == 0); } for (int j = 0; j < test.Context.Count; j++) { ResizingTestContext context = test.Context[j]; renderData.cursorLeft = context.OldCursor.X; renderData.cursorTop = context.OldCursor.Y; RenderDataOffset offset = instance.ConvertPointToRenderDataOffset(context.OldInitial.X, context.OldInitial.Y, renderData); Assert.True( context.Offset.LineIndex == offset.LogicalLineIndex && context.Offset.CharIndex == offset.VisibleCharIndex, $"{test.Name}-context_{j}: calculated offset is not what's expected [line: {offset.LogicalLineIndex}, char: {offset.VisibleCharIndex}]"); } } }