Przeglądaj źródła

fixed missed ratio in view with diff

avkonst 11 lat temu
rodzic
commit
8648a3b06b

+ 45 - 26
mainline/ext/std/tools/view.py

@@ -192,54 +192,73 @@ def append_diff(main_tree, prev_tree):
 def append_diff_list(main_list, prev_list):
     merged_list = {}
     for bar in main_list:
-        merged_list[bar['metric']] = {'count': bar['count'], '__diff__':0}
+        merged_list[bar['metric']] = {'count': bar['count'], '__diff__':0, 'ratio': bar['ratio']}
     for bar in prev_list:
         if bar['metric'] in merged_list.keys():
             merged_list[bar['metric']]['__diff__'] = \
                 merged_list[bar['metric']]['count'] - bar['count']
         else:
-            merged_list[bar['metric']] = {'count': 0, '__diff__':-bar['count']}
+            merged_list[bar['metric']] = {'count': 0, '__diff__':-bar['count'], 'ratio': bar['ratio']}
     result = []
     for metric in sorted(merged_list.keys()):
-        result.append({'metric':metric, 'count':merged_list[metric]['count'], '__diff__':merged_list[metric]['__diff__']})
+        result.append({'metric':metric,
+                       'count':merged_list[metric]['count'],
+                       'ratio':merged_list[metric]['ratio'],
+                       '__diff__':merged_list[metric]['__diff__']})
     return result
 
+def cout_txt_regions(regions, indent = 0):
+    print indent, "dumping regions"
+    for region in regions:
+        print indent, 'region:', region['info']
+        for namespace in region['data'].keys():
+            diff_data = {}
+            if '__diff__' in region['data'][namespace].keys():
+                diff_data = region['data'][namespace]['__diff__']
+            for field in region['data'][namespace].keys():
+                diff_str = ""
+                if field == '__diff__':
+                    continue
+                if field in diff_data.keys():
+                    diff_str = "[" + ("+" if diff_data[field] >= 0 else "") + str(diff_data[field]) + "]"
+                print indent, namespace, field, region['data'][namespace][field], diff_str
+        if 'subregions' in region.keys():
+            cout_txt_regions(region['subregions'], indent=indent+1)
+
 def cout_txt(data):
     print "FILE DATA"
     for key in data['file-data'].keys():
         if key == 'regions':
-            print "dumping regions"
-            for region in data['file-data'][key]:
-                print 'region:', region['info']
-                for namespace in region['data'].keys():
-                    diff_data = None
-                    diff_str = ""
-                    if '__diff__' in region['data'][namespace].keys():
-                        diff_data = region['data'][namespace]['__diff__']
-                    for field in region['data'][namespace].keys():
-                        if field == '__diff__':
-                            continue
-                        if diff_data != None:
-                            diff_str = "[" + ("+" if diff_data[field] >= 0 else "") + str(diff_data[field]) + "]"
-                        print namespace, field, region['data'][namespace][field], diff_str
+            cout_txt_regions(data['file-data'][key])
         else:
-            print "dumping data", key, data['file-data']
-            
-            
-            diff_data = None
-            diff_str = ""
+            print "dumping per file data"
             namespace = key
+            diff_data = {}
             if '__diff__' in data['file-data'][namespace].keys():
                 diff_data = data['file-data'][namespace]['__diff__']
             for field in data['file-data'][namespace].keys():
+                diff_str = ""
                 if field == '__diff__':
                     continue
-                if diff_data != None:
-                    #diff_str = "[" + ("+" if diff_data[field] >= 0 else "") + str(diff_data[field]) + "]"
-                    pass
+                if field in diff_data.keys():
+                    diff_str = "[" + ("+" if diff_data[field] >= 0 else "") + str(diff_data[field]) + "]"
                 print namespace, field, data['file-data'][namespace][field], diff_str
     print "AGGREGATED DATA"
     for namespace in data['aggregated-data'].keys():
         for field in data['aggregated-data'][namespace].keys():
-            print data['aggregated-data'][namespace][field]
+            diff_data = {}
+            if '__diff__' in data['aggregated-data'][namespace][field].keys():
+                diff_data = data['aggregated-data'][namespace][field]['__diff__']
+            for attr in data['aggregated-data'][namespace][field].keys():
+                diff_str = ""
+                if attr == 'distribution-bars' or attr == '__diff__':
+                    continue
+                if attr in diff_data.keys():
+                    diff_str = "[" + ("+" if diff_data[attr] >= 0 else "") + str(diff_data[attr]) + "]"
+                print namespace, field, attr, data['aggregated-data'][namespace][field][attr], diff_str
+            for bar in data['aggregated-data'][namespace][field]['distribution-bars']:
+                diff_str = ""
+                if '__diff__' in bar.keys():
+                    diff_str = "[" + ("+" if bar['__diff__'] >= 0 else "") + str(bar['__diff__']) + "]"
+                print "bar:", '|'*int(round(bar['ratio']*100)), bar['ratio'], bar['count'], bar['metric'], diff_str 
     

+ 4 - 4
mainline/tests/general/test_basic/test_view_format_view_nest_per_file_stdout.gold.txt

@@ -94,10 +94,10 @@
             <std.code.complexity>
                 <cyclomatic count="6" max="3" avg="1.33333333333" total="8.0" min="0">
                     <distribution-bars>
-                        <distribution-bar count="1" __diff__="0" metric="0" />
-                        <distribution-bar count="3" __diff__="0" metric="1" />
-                        <distribution-bar count="1" __diff__="0" metric="2" />
-                        <distribution-bar count="1" __diff__="0" metric="3" />
+                        <distribution-bar count="1" __diff__="0" metric="0" ratio="0.1667" />
+                        <distribution-bar count="3" __diff__="0" metric="1" ratio="0.5" />
+                        <distribution-bar count="1" __diff__="0" metric="2" ratio="0.1667" />
+                        <distribution-bar count="1" __diff__="0" metric="3" ratio="0.1667" />
                     </distribution-bars>
                     <__diff__ count="2" max="0" avg="-0.166666666667" total="2.0" min="-1" />
                 </cyclomatic>

+ 4 - 4
mainline/tests/general/test_basic/test_view_format_view_nest_stdout.gold.txt

@@ -12,10 +12,10 @@
             <std.code.complexity>
                 <cyclomatic count="7" max="3" avg="1.57142857143" total="11.0" min="0">
                     <distribution-bars>
-                        <distribution-bar count="1" __diff__="0" metric="0" />
-                        <distribution-bar count="3" __diff__="0" metric="1" />
-                        <distribution-bar count="1" __diff__="0" metric="2" />
-                        <distribution-bar count="2" __diff__="1" metric="3" />
+                        <distribution-bar count="1" __diff__="0" metric="0" ratio="0.1429" />
+                        <distribution-bar count="3" __diff__="0" metric="1" ratio="0.4286" />
+                        <distribution-bar count="1" __diff__="0" metric="2" ratio="0.1429" />
+                        <distribution-bar count="2" __diff__="1" metric="3" ratio="0.2857" />
                     </distribution-bars>
                     <__diff__ count="3" max="0" avg="0.0714285714286" total="5.0" min="-1" />
                 </cyclomatic>

+ 4 - 4
mainline/tests/general/test_basic/test_workflow_view_second_per_file_stdout.gold.txt

@@ -74,10 +74,10 @@
             <std.code.complexity>
                 <cyclomatic count="6" max="3" avg="1.33333333333" total="8.0" min="0">
                     <distribution-bars>
-                        <distribution-bar count="1" __diff__="0" metric="0" />
-                        <distribution-bar count="3" __diff__="0" metric="1" />
-                        <distribution-bar count="1" __diff__="0" metric="2" />
-                        <distribution-bar count="1" __diff__="0" metric="3" />
+                        <distribution-bar count="1" __diff__="0" metric="0" ratio="0.1667" />
+                        <distribution-bar count="3" __diff__="0" metric="1" ratio="0.5" />
+                        <distribution-bar count="1" __diff__="0" metric="2" ratio="0.1667" />
+                        <distribution-bar count="1" __diff__="0" metric="3" ratio="0.1667" />
                     </distribution-bars>
                     <__diff__ count="2" max="0" avg="-0.166666666667" total="2.0" min="-1" />
                 </cyclomatic>

+ 4 - 4
mainline/tests/general/test_basic/test_workflow_view_second_stdout.gold.txt

@@ -12,10 +12,10 @@
             <std.code.complexity>
                 <cyclomatic count="7" max="3" avg="1.57142857143" total="11.0" min="0">
                     <distribution-bars>
-                        <distribution-bar count="1" __diff__="0" metric="0" />
-                        <distribution-bar count="3" __diff__="0" metric="1" />
-                        <distribution-bar count="1" __diff__="0" metric="2" />
-                        <distribution-bar count="2" __diff__="1" metric="3" />
+                        <distribution-bar count="1" __diff__="0" metric="0" ratio="0.1429" />
+                        <distribution-bar count="3" __diff__="0" metric="1" ratio="0.4286" />
+                        <distribution-bar count="1" __diff__="0" metric="2" ratio="0.1429" />
+                        <distribution-bar count="2" __diff__="1" metric="3" ratio="0.2857" />
                     </distribution-bars>
                     <__diff__ count="3" max="0" avg="0.0714285714286" total="5.0" min="-1" />
                 </cyclomatic>