@@ -240,7 +240,7 @@ def test_tabs():
240240 assert row == ' Col 1 Col 2 '
241241
242242
243- def test_simple_table ():
243+ def test_simple_table_creation ():
244244 column_1 = Column ("Col 1" , width = 16 )
245245 column_2 = Column ("Col 2" , width = 16 )
246246
@@ -310,7 +310,31 @@ def test_simple_table():
310310 assert "Row spacing cannot be less than 0" in str (excinfo .value )
311311
312312
313- def test_bordered_table ():
313+ def test_simple_table_base_width ():
314+ # Default divider char
315+ assert SimpleTable .base_width (1 ) == 0
316+ assert SimpleTable .base_width (2 ) == 2
317+ assert SimpleTable .base_width (3 ) == 4
318+
319+ # Standard divider char
320+ divider_char = '*'
321+ assert SimpleTable .base_width (1 , divider_char = divider_char ) == 0
322+ assert SimpleTable .base_width (2 , divider_char = divider_char ) == 2
323+ assert SimpleTable .base_width (3 , divider_char = divider_char ) == 4
324+
325+ # Wide divider char
326+ divider_char = '深'
327+ assert SimpleTable .base_width (1 , divider_char = divider_char ) == 0
328+ assert SimpleTable .base_width (2 , divider_char = divider_char ) == 4
329+ assert SimpleTable .base_width (3 , divider_char = divider_char ) == 8
330+
331+ # Invalid num_cols value
332+ with pytest .raises (ValueError ) as excinfo :
333+ SimpleTable .base_width (0 )
334+ assert "Column count cannot be less than 1" in str (excinfo .value )
335+
336+
337+ def test_bordered_table_creation ():
314338 column_1 = Column ("Col 1" , width = 15 )
315339 column_2 = Column ("Col 2" , width = 15 )
316340
@@ -366,7 +390,34 @@ def test_bordered_table():
366390 assert "Padding cannot be less than 0" in str (excinfo .value )
367391
368392
369- def test_alternating_table ():
393+ def test_bordered_table_base_width ():
394+ # Default behavior (column_borders=True, padding=1)
395+ assert BorderedTable .base_width (1 ) == 4
396+ assert BorderedTable .base_width (2 ) == 7
397+ assert BorderedTable .base_width (3 ) == 10
398+
399+ # No column borders
400+ assert BorderedTable .base_width (1 , column_borders = False ) == 4
401+ assert BorderedTable .base_width (2 , column_borders = False ) == 6
402+ assert BorderedTable .base_width (3 , column_borders = False ) == 8
403+
404+ # No padding
405+ assert BorderedTable .base_width (1 , padding = 0 ) == 2
406+ assert BorderedTable .base_width (2 , padding = 0 ) == 3
407+ assert BorderedTable .base_width (3 , padding = 0 ) == 4
408+
409+ # Extra padding
410+ assert BorderedTable .base_width (1 , padding = 3 ) == 8
411+ assert BorderedTable .base_width (2 , padding = 3 ) == 15
412+ assert BorderedTable .base_width (3 , padding = 3 ) == 22
413+
414+ # Invalid num_cols value
415+ with pytest .raises (ValueError ) as excinfo :
416+ BorderedTable .base_width (0 )
417+ assert "Column count cannot be less than 1" in str (excinfo .value )
418+
419+
420+ def test_alternating_table_creation ():
370421 column_1 = Column ("Col 1" , width = 15 )
371422 column_2 = Column ("Col 2" , width = 15 )
372423
0 commit comments