@@ -1027,29 +1027,30 @@ public void Print(Action<string> writeLine)
10271027 writeLine ( $ "| { new string ( ' ' , maxLength ) } | { "Count" . PadLeft ( nLength ) } | % | { "Median" . PadLeft ( medianLength ) } | { "Lower Q" . PadLeft ( lowerLength ) } | { "Upper Q" . PadLeft ( upperLength ) } | { "Minimum" . PadLeft ( minimumLength ) } | { "Maximum" . PadLeft ( maximumLength ) } |") ;
10281028 writeLine ( $ "|-{ new string ( '-' , maxLength ) } -|-{ new string ( '-' , nLength ) } :|--------:|-{ new string ( '-' , medianLength ) } --:|-{ new string ( '-' , lowerLength ) } --:|-{ new string ( '-' , upperLength ) } --:|-{ new string ( '-' , minimumLength ) } --:|-{ new string ( '-' , maximumLength ) } --:|") ;
10291029 foreach ( var kv in estimators . OrderByDescending ( kv =>
1030- {
1031- var a = kv . Key . Split ( '/' ) ;
1032- var r = new int [ a . Length ] ;
1033- for ( int i = 0 ; i < a . Length - 1 ; i ++ )
1034- r [ i ] = estimators [ string . Join ( '/' , a . Take ( i + 1 ) ) ] . N ;
1035- r [ ^ 1 ] = kv . Value . N ;
1036- return ( r , kv . Key ) ;
1037- } , Comparer < ( int [ ] , string ) > . Create ( ( xb , yb ) =>
1038- {
1039- var ( x , xs ) = xb ;
1040- var ( y , ys ) = yb ;
1041- int c ;
1042- for ( int i = 0 ; i < Math . Min ( x . Length , y . Length ) ; i ++ )
1043- {
1044- c = x [ i ] . CompareTo ( y [ i ] ) ;
1045- if ( c != 0 )
1046- return c ;
1047- }
1048- c = - x . Length . CompareTo ( y . Length ) ;
1049- if ( c != 0 )
1050- return c ;
1051- return - string . CompareOrdinal ( xs , ys ) ;
1052- } ) ) )
1030+ {
1031+ var a = kv . Key . Split ( '/' ) ;
1032+ var r = new ( int , string ) [ a . Length ] ;
1033+ for ( int i = 0 ; i < a . Length - 1 ; i ++ )
1034+ {
1035+ var prefix = string . Join ( '/' , a . Take ( i + 1 ) ) ;
1036+ r [ i ] = ( estimators [ prefix ] . N , prefix ) ;
1037+ }
1038+ r [ ^ 1 ] = ( kv . Value . N , kv . Key ) ;
1039+ return r ;
1040+ } , Comparer < ( int , string ) [ ] > . Create ( ( x , y ) =>
1041+ {
1042+ int c ;
1043+ for ( int i = 0 ; i < Math . Min ( x . Length , y . Length ) ; i ++ )
1044+ {
1045+ c = x [ i ] . Item1 . CompareTo ( y [ i ] . Item1 ) ;
1046+ if ( c != 0 )
1047+ return c ;
1048+ c = - string . CompareOrdinal ( x [ i ] . Item2 , y [ i ] . Item2 ) ;
1049+ if ( c != 0 )
1050+ return c ;
1051+ }
1052+ return - x . Length . CompareTo ( y . Length ) ;
1053+ } ) ) )
10531054 {
10541055 var a = kv . Key . Split ( '/' ) ;
10551056 var name = ( new string ( ( char ) 160 , 2 * ( a . Length - 1 ) ) + a [ ^ 1 ] ) . PadRight ( maxLength ) ;
0 commit comments