@@ -90,6 +90,49 @@ def test_get_rows_opt_break_middle_include_markers() -> None:
9090 assert rows [0 ].text == "First verse in line // More text"
9191
9292
93+ def test_get_sidebar_first_tag () -> None :
94+ rows : List [TextRow ] = get_rows (
95+ r"""\id MAT - Test
96+ \esb
97+ \ip My sidebar text
98+ \esbe
99+ \c 1
100+ \p
101+ \v 1 First verse
102+ """ ,
103+ include_all_text = True ,
104+ include_markers = True ,
105+ )
106+ assert len (rows ) == 3 , str .join ("," , [tr .text for tr in rows ])
107+ assert rows [0 ].text == "My sidebar text"
108+ assert scripture_ref (rows [0 ]) == ScriptureRef .parse ("MAT 1:0/1:esb/1:ip" )
109+ assert rows [1 ].text == ""
110+ assert scripture_ref (rows [1 ]) == ScriptureRef .parse ("MAT 1:0/2:p" )
111+ assert rows [2 ].text == "First verse"
112+ assert scripture_ref (rows [2 ]) == ScriptureRef .parse ("MAT 1:1" )
113+
114+
115+ def test_get_table_row_first_tag () -> None :
116+ rows : List [TextRow ] = get_rows (
117+ r"""\id MAT - Test
118+ \tr \th1 Day \th2 Tribe \th3 Leader
119+ \tr \tcr1 1st \tc2 Judah \tc3 Nahshon son of Amminadab
120+ \c 1
121+ \p
122+ \v 1 First verse
123+ """ ,
124+ include_all_text = True ,
125+ include_markers = True ,
126+ )
127+ assert len (rows ) == 8 , str .join ("," , [tr .text for tr in rows ])
128+ assert rows [0 ].text == "\\ th1 Day"
129+ assert scripture_ref (rows [0 ]) == ScriptureRef .parse ("MAT 1:0/1:tr/1:th1" )
130+ assert rows [6 ].text == ""
131+ assert scripture_ref (rows [6 ]) == ScriptureRef .parse ("MAT 1:0/3:p" )
132+ assert rows [7 ].text == "First verse"
133+ assert scripture_ref (rows [7 ]) == ScriptureRef .parse ("MAT 1:1" )
134+
135+
93136def test_get_rows_verse_para_beginning_non_verse_segment () -> None :
94137 # a verse paragraph that begins with a non-verse segment followed by a verse segment
95138 rows : List [TextRow ] = get_rows (
0 commit comments