def test_global_rank_adjustment_puts_directories_into_predictable_order(self): # and if d if the ranks mismatch, dont reorder in_res = QueryResult(hits=[("/b/render_widget.cpp", 10), ("/a/render_widget.cpp", 10)]) res = query._apply_global_rank_adjustment(in_res, ["/"], Query("rw")) self.assertEquals(["/a/render_widget.cpp", "/b/render_widget.cpp"], res.filenames)
def test_adjustment_creates_decreasing_hit_order(self): initial_result = QueryResult.from_dict({'hits': [('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/fast/js/script-tests/char-at.js', 12.0), ('/Users/nduca/home/quickopen/test_data/cr_files_basenames.json', 10.800000000000001), ('/Users/nduca/Local/chrome/src/chrome/browser/resources/options2/instant_confirm_overlay.js', 9.3000000000000007), ('/Users/nduca/Local/chrome/src/chrome/browser/resources/options/instant_confirm_overlay.js', 9.3000000000000007), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/svg/dynamic-updates/script-tests/SVGCircleElement-dom-requiredFeatures.js', 8.5999999999999996), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/svg/dom/SVGScriptElement/resources/script-set-href-p9pass.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/xhtml/level3/core/domconfigurationcansetparameter03.js', 7.0), ('/Users/nduca/Local/chrome/src/chrome/browser/resources/options2/chromeos/cellular_plan_element.js', 9.3000000000000007), ('/Users/nduca/Local/chrome/src/chrome/browser/resources/options/chromeos/cellular_plan_element.js', 9.3000000000000007), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/svg/level3/xpath/Conformance_Expressions.js', 10.0), ('/Users/nduca/Local/chrome/src/third_party/WebKit/Source/WebCore/inspector/front-end/ResourceResponseView.js', 9.3000000000000007), ('/Users/nduca/home/trace_event_viewer/third_party/chrome/shared/js/cr/ui/focus_outline_manager.js', 7.5), ('/Users/nduca/Local/chrome/src/chrome/browser/resources/shared/js/cr/ui/focus_outline_manager.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/svg/dom/SVGScriptElement/resources/script-set-href-p2fail.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/Source/WebCore/inspector/front-end/InspectorView.js', 7.0), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/xhtml/level1/core/hc_characterdatadeletedatamiddle.js', 10.0), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/html/level1/core/hc_characterdatadeletedatamiddle.js', 10.0), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/http/tests/security/xssAuditor/resources/base-href/really-safe-script.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/xhtml/level1/core/hc_attrreplacechild1.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/html/level1/core/hc_attrreplacechild1.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/fast/dom/Geolocation/script-tests/timeout-clear-watch.js', 7.0), ('/Users/nduca/Local/chrome/src/chrome/test/data/extensions/api_test/history/search_after_add.js', 7.0), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/svg/dom/SVGScriptElement/resources/script-set-href-p5fail.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/svg/dynamic-updates/script-tests/SVGRectElement-dom-y-attr.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/xhtml/level3/core/documentrenamenode03.js', 7.0), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/xhtml/level1/core/hc_textsplittextfour.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/html/level1/core/hc_textsplittextfour.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/fast/dom/Orientation/script-tests/create-event-orientationchange.js', 13.5), ('/Users/nduca/Local/chrome/src/chrome/browser/resources/connection_manager.js', 10.5), ('/Users/nduca/home/trace_event_viewer/third_party/chrome/shared/js/cr.js', 14.0), ('/Users/nduca/Local/chrome/src/chrome/common/extensions/docs/examples/extensions/plugin_settings/domui/js/cr.js', 14.0), ('/Users/nduca/Local/chrome/src/chrome/browser/resources/shared/js/cr.js', 14.0), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/fast/js/mozilla/eval/script-tests/exhaustive-global-strictcaller-indirect-strictcode.js', 7.0), ('/Users/nduca/home/trace_event_viewer/third_party/chrome/shared/js/event_tracker.js', 7.5), ('/Users/nduca/Local/chrome/src/chrome/browser/resources/shared/js/event_tracker.js', 7.5)], 'debug_info': [], 'truncated': True}) dirs = ['/Users/nduca/Local/ndbg', '/Users/nduca/Local/quickopen', '/Users/nduca/home', '/Users/nduca/Local/chrome'] q = Query("cr.js") res = query._apply_global_rank_adjustment(initial_result, dirs, q) for i in range(1, len(res.ranks)): self.assertTrue(res.ranks[i-1] > res.ranks[i]) self.assertEquals('/Users/nduca/Local/chrome/src/chrome/browser/resources/shared/js/cr.js', res.filenames[0])
def test_global_rank_adjustment_puts_directories_into_predictable_order( self): # and if d if the ranks mismatch, dont reorder in_res = QueryResult(hits=[("/b/render_widget.cpp", 10), ("/a/render_widget.cpp", 10)]) res = query._apply_global_rank_adjustment(in_res, ["/"], Query("rw")) self.assertEquals(["/a/render_widget.cpp", "/b/render_widget.cpp"], res.filenames)
def test_adjustment_puts_current_project_above_noncurrent(self): in_res = QueryResult(hits=[("/b/render_widget.cpp", 10), ("/a/render_widget.cpp", 10)]) res = query._apply_global_rank_adjustment(in_res, ["/a/", "/b/"], Query("rw", current_filename="/b/k/foobar.cpp")) rA = res.rank_of("/a/render_widget.cpp") rB = res.rank_of("/b/render_widget.cpp") self.assertTrue(rB > rA, "Expected %s > %s" % (rB, rA))
def test_adjustment_puts_current_project_above_noncurrent(self): in_res = QueryResult(hits=[("/b/render_widget.cpp", 10), ("/a/render_widget.cpp", 10)]) res = query._apply_global_rank_adjustment( in_res, ["/a/", "/b/"], Query("rw", current_filename="/b/k/foobar.cpp")) rA = res.rank_of("/a/render_widget.cpp") rB = res.rank_of("/b/render_widget.cpp") self.assertTrue(rB > rA, "Expected %s > %s" % (rB, rA))
def test_global_rank_adjustment_puts_suffixes_into_predictable_order(self): # render_widget.cpp should be get re-ranked higher than render_widget.h in_res = QueryResult(hits=[("/render_widget.h", 10), ("/render_widget.cpp", 10)]) res = query._apply_global_rank_adjustment(in_res, ["/"], Query("rw")) self.assertEquals(["/render_widget.cpp", "/render_widget.h",], res.filenames) # render_widget.cpp should stay ranked higher than render_widget.h in_res = QueryResult(hits=[("/render_widget.cpp", 10), ("/render_widget.h", 10)]) res = query._apply_global_rank_adjustment(in_res, ["/"], Query("rw")) self.assertEquals(["/render_widget.cpp", "/render_widget.h"], res.filenames) # but if the ranks mismatch, dont reorder in_res = QueryResult(hits=[("/render_widget.cpp", 10), ("/render_widget.h", 12)]) res = query._apply_global_rank_adjustment(in_res, ["/"], Query("rw")) self.assertEquals(["/render_widget.h", "/render_widget.cpp"], res.filenames)
def test_adjustment_puts_different_files_in_different_base_directories_together( self): in_res = QueryResult(hits=[("/a/render_widget.cpp", 10), ("/b/render_widget.cpp", 10), ("/a/render_view.cpp", 9), ("/b/render_view.cpp", 9)]) # Cwd is not an active dir. res = query._apply_global_rank_adjustment( in_res, ["/a", "/b"], Query("render", current_filename="/x")) self.assertEquals([ "/a/render_widget.cpp", "/a/render_view.cpp", "/b/render_widget.cpp", "/b/render_view.cpp" ], res.filenames) # b is cwd. res = query._apply_global_rank_adjustment( in_res, ["/a", "/b"], Query("render", current_filename="/b")) self.assertEquals([ "/b/render_widget.cpp", "/b/render_view.cpp", "/a/render_widget.cpp", "/a/render_view.cpp" ], res.filenames)
def test_adjustment_puts_different_files_in_different_base_directories_together(self): in_res = QueryResult(hits=[("/a/render_widget.cpp", 10), ("/b/render_widget.cpp", 10), ("/a/render_view.cpp", 9), ("/b/render_view.cpp", 9)]) # Cwd is not an active dir. res = query._apply_global_rank_adjustment(in_res, ["/a", "/b"], Query("render", current_filename="/x")) self.assertEquals(["/a/render_widget.cpp", "/a/render_view.cpp", "/b/render_widget.cpp", "/b/render_view.cpp"], res.filenames) # b is cwd. res = query._apply_global_rank_adjustment(in_res, ["/a", "/b"], Query("render", current_filename="/b")) self.assertEquals(["/b/render_widget.cpp", "/b/render_view.cpp", "/a/render_widget.cpp", "/a/render_view.cpp"], res.filenames)
def test_adjustment_puts_current_project_then_inactives_in_alphabetical(self): in_res = QueryResult(hits=[("/c/render_widget.cpp", 10), ("/b/render_widget.cpp", 10), ("/a/render_widget.cpp", 10)]) # A is current, so it should go top, then b c res = query._apply_global_rank_adjustment(in_res, ["/a/", "/b/", "/c/"], Query("rw", current_filename="/a/foobar.cpp")) rA = res.rank_of("/a/render_widget.cpp") rB = res.rank_of("/b/render_widget.cpp") rC = res.rank_of("/c/render_widget.cpp") self.assertTrue(rA > rB, "Expected %s > %s" % (rA, rB)) self.assertTrue(rB > rC, "Expected %s > %s" % (rB, rC)) self.assertTrue(rA > rC, "Expected %s > %s" % (rA, rC))
def test_global_rank_adjustment_puts_suffixes_into_predictable_order(self): # render_widget.cpp should be get re-ranked higher than render_widget.h in_res = QueryResult(hits=[("/render_widget.h", 10), ("/render_widget.cpp", 10)]) res = query._apply_global_rank_adjustment(in_res, ["/"], Query("rw")) self.assertEquals([ "/render_widget.cpp", "/render_widget.h", ], res.filenames) # render_widget.cpp should stay ranked higher than render_widget.h in_res = QueryResult(hits=[("/render_widget.cpp", 10), ("/render_widget.h", 10)]) res = query._apply_global_rank_adjustment(in_res, ["/"], Query("rw")) self.assertEquals(["/render_widget.cpp", "/render_widget.h"], res.filenames) # but if the ranks mismatch, dont reorder in_res = QueryResult(hits=[("/render_widget.cpp", 10), ("/render_widget.h", 12)]) res = query._apply_global_rank_adjustment(in_res, ["/"], Query("rw")) self.assertEquals(["/render_widget.h", "/render_widget.cpp"], res.filenames)
def test_adjustment_puts_current_project_then_inactives_in_alphabetical( self): in_res = QueryResult(hits=[("/c/render_widget.cpp", 10), ("/b/render_widget.cpp", 10), ("/a/render_widget.cpp", 10)]) # A is current, so it should go top, then b c res = query._apply_global_rank_adjustment( in_res, ["/a/", "/b/", "/c/"], Query("rw", current_filename="/a/foobar.cpp")) rA = res.rank_of("/a/render_widget.cpp") rB = res.rank_of("/b/render_widget.cpp") rC = res.rank_of("/c/render_widget.cpp") self.assertTrue(rA > rB, "Expected %s > %s" % (rA, rB)) self.assertTrue(rB > rC, "Expected %s > %s" % (rB, rC)) self.assertTrue(rA > rC, "Expected %s > %s" % (rA, rC))
def test_adjustment_creates_decreasing_hit_order(self): initial_result = QueryResult.from_dict({ 'hits': [('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/fast/js/script-tests/char-at.js', 12.0), ('/Users/nduca/home/quickopen/test_data/cr_files_basenames.json', 10.800000000000001), ('/Users/nduca/Local/chrome/src/chrome/browser/resources/options2/instant_confirm_overlay.js', 9.3000000000000007), ('/Users/nduca/Local/chrome/src/chrome/browser/resources/options/instant_confirm_overlay.js', 9.3000000000000007), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/svg/dynamic-updates/script-tests/SVGCircleElement-dom-requiredFeatures.js', 8.5999999999999996), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/svg/dom/SVGScriptElement/resources/script-set-href-p9pass.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/xhtml/level3/core/domconfigurationcansetparameter03.js', 7.0), ('/Users/nduca/Local/chrome/src/chrome/browser/resources/options2/chromeos/cellular_plan_element.js', 9.3000000000000007), ('/Users/nduca/Local/chrome/src/chrome/browser/resources/options/chromeos/cellular_plan_element.js', 9.3000000000000007), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/svg/level3/xpath/Conformance_Expressions.js', 10.0), ('/Users/nduca/Local/chrome/src/third_party/WebKit/Source/WebCore/inspector/front-end/ResourceResponseView.js', 9.3000000000000007), ('/Users/nduca/home/trace_event_viewer/third_party/chrome/shared/js/cr/ui/focus_outline_manager.js', 7.5), ('/Users/nduca/Local/chrome/src/chrome/browser/resources/shared/js/cr/ui/focus_outline_manager.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/svg/dom/SVGScriptElement/resources/script-set-href-p2fail.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/Source/WebCore/inspector/front-end/InspectorView.js', 7.0), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/xhtml/level1/core/hc_characterdatadeletedatamiddle.js', 10.0), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/html/level1/core/hc_characterdatadeletedatamiddle.js', 10.0), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/http/tests/security/xssAuditor/resources/base-href/really-safe-script.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/xhtml/level1/core/hc_attrreplacechild1.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/html/level1/core/hc_attrreplacechild1.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/fast/dom/Geolocation/script-tests/timeout-clear-watch.js', 7.0), ('/Users/nduca/Local/chrome/src/chrome/test/data/extensions/api_test/history/search_after_add.js', 7.0), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/svg/dom/SVGScriptElement/resources/script-set-href-p5fail.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/svg/dynamic-updates/script-tests/SVGRectElement-dom-y-attr.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/xhtml/level3/core/documentrenamenode03.js', 7.0), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/xhtml/level1/core/hc_textsplittextfour.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/dom/html/level1/core/hc_textsplittextfour.js', 7.5), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/fast/dom/Orientation/script-tests/create-event-orientationchange.js', 13.5), ('/Users/nduca/Local/chrome/src/chrome/browser/resources/connection_manager.js', 10.5), ('/Users/nduca/home/trace_event_viewer/third_party/chrome/shared/js/cr.js', 14.0), ('/Users/nduca/Local/chrome/src/chrome/common/extensions/docs/examples/extensions/plugin_settings/domui/js/cr.js', 14.0), ('/Users/nduca/Local/chrome/src/chrome/browser/resources/shared/js/cr.js', 14.0), ('/Users/nduca/Local/chrome/src/third_party/WebKit/LayoutTests/fast/js/mozilla/eval/script-tests/exhaustive-global-strictcaller-indirect-strictcode.js', 7.0), ('/Users/nduca/home/trace_event_viewer/third_party/chrome/shared/js/event_tracker.js', 7.5), ('/Users/nduca/Local/chrome/src/chrome/browser/resources/shared/js/event_tracker.js', 7.5)], 'debug_info': [], 'truncated': True }) dirs = [ '/Users/nduca/Local/ndbg', '/Users/nduca/Local/quickopen', '/Users/nduca/home', '/Users/nduca/Local/chrome' ] q = Query("cr.js") res = query._apply_global_rank_adjustment(initial_result, dirs, q) for i in range(1, len(res.ranks)): self.assertTrue(res.ranks[i - 1] > res.ranks[i]) self.assertEquals( '/Users/nduca/Local/chrome/src/chrome/browser/resources/shared/js/cr.js', res.filenames[0])