@@ -1991,8 +1991,25 @@ def test_html_repr(self, ts):
19911991 assert len (html ) > 5000
19921992 assert f"<tr><td>Trees</td><td>{ ts .num_trees :,} </td></tr>" in html
19931993 assert f"<tr><td>Time Units</td><td>{ ts .time_units } </td></tr>" in html
1994- for table in ts .tables .table_name_map :
1995- assert f"<td>{ table .capitalize ()} </td>" in html
1994+ codecs = collections .defaultdict (int )
1995+ for table_name , table in ts .tables .table_name_map .items ():
1996+ assert f"<td>{ table_name .capitalize ()} </td>" in html
1997+ if hasattr (table , "metadata_schema" ):
1998+ schema = table .metadata_schema .schema
1999+ codec = schema ["codec" ] if schema else "raw"
2000+ codecs [codec ] += 1
2001+ assert "<td>Metadata</td>" in html
2002+ assert "<th>Metadata</th>" in html
2003+ assert "<th>Metadata size</th>" in html
2004+ num_tables_with_metadata = 0
2005+ for codec , count in codecs .items ():
2006+ assert html .count (f">{ codec } </td>" ) == count
2007+ num_tables_with_metadata += count
2008+ # Only one table (provenances) has no metadata
2009+ assert num_tables_with_metadata == len (ts .tables .table_name_map ) - 1
2010+ # All metadata tables should show the percentage metadata size
2011+ assert html .count ("%)</td>" ) == num_tables_with_metadata
2012+
19962013 if ts .num_provenances > 0 :
19972014 assert (
19982015 f"<td>{ json .loads (ts .provenance (0 ).record )['software' ]['name' ]} </td>"
@@ -2027,8 +2044,21 @@ def test_str(self, ts):
20272044 assert len (s ) > 999
20282045 assert re .search (rf"║Trees *│ *{ ts .num_trees } ║" , s )
20292046 assert re .search (rf"║Time Units *│ *{ ts .time_units } ║" , s )
2030- for table in ts .tables .table_name_map :
2031- assert re .search (rf"║{ table .capitalize ()} *│" , s )
2047+ codecs = collections .defaultdict (int )
2048+ for table_name , table in ts .tables .table_name_map .items ():
2049+ assert re .search (rf"║{ table_name .capitalize ()} *│" , s )
2050+ if hasattr (table , "metadata_schema" ):
2051+ schema = table .metadata_schema .schema
2052+ codec = schema ["codec" ] if schema else "raw"
2053+ codecs [codec ] += 1
2054+ num_tables_with_metadata = 0
2055+ for codec , count in codecs .items ():
2056+ assert s .count (codec ) == count
2057+ num_tables_with_metadata += count
2058+ # Only one table (provenances) has no metadata
2059+ assert num_tables_with_metadata == len (ts .tables .table_name_map ) - 1
2060+ # All metadata tables should show the percentage metadata size
2061+ assert s .count ("%)" ) == num_tables_with_metadata
20322062
20332063 @pytest .mark .skip ("FIXME nbytes" )
20342064 def test_nbytes (self , tmp_path , ts_fixture ):
0 commit comments