From 7d18a268547734daf19a740b6533e9c1697baf1a Mon Sep 17 00:00:00 2001 From: salmonik Date: Wed, 28 Oct 2026 23:31:54 +0100 Subject: v1.2.1: track wrapped board lines and split the paytable --- tests/client_ui.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'tests/client_ui.rs') diff --git a/tests/client_ui.rs b/tests/client_ui.rs index a22fbe7..ea432e0 100644 --- a/tests/client_ui.rs +++ b/tests/client_ui.rs @@ -1,6 +1,7 @@ use zagan_bet::client::ui::{ command_names, completion_lines, display_width, first_contact_lines, format_pong, help_lines, host_lines, input_cursor_column, lines_to_move_up, parse_bet_arg, record_history, + visual_line_count, }; use std::time::Duration; @@ -97,6 +98,24 @@ fn redraw_moves_up_by_line_count_minus_one() { assert_eq!(lines_to_move_up(70_000), u16::MAX); } +#[test] +fn visual_line_count_accounts_for_terminal_wrapping() { + let lines = vec![ + "12345".to_string(), + "123456".to_string(), + String::new(), + ]; + + assert_eq!(visual_line_count(&lines, 5), 4); // 1 + 2 + 1 + assert_eq!(visual_line_count(&lines, 6), 3); // 1 + 1 + 1 + assert_eq!(visual_line_count(&lines, 80), 3); + assert_eq!(visual_line_count(&[], 80), 0); + + let wide = "x".repeat(75); + assert_eq!(visual_line_count(&[wide.clone()], 75), 1); + assert_eq!(visual_line_count(&[wide], 72), 2); +} + #[test] fn input_cursor_is_after_the_removed_character() { assert_eq!(input_cursor_column(10, 8), 18); -- cgit v1.2.3