public void testGroupingByName2UrnsNameComesLate() { model .getGroupedSearchResults() .addListEventListener(new GroupingListEventListener(new SimilarResultsFileNameDetector())); TestSearchResult testResult1 = new TestSearchResult("1", "file name"); TestSearchResult testResult2 = new TestSearchResult("2", "other file"); TestSearchResult testResult3 = new TestSearchResult("1", "file name"); // other file for urn1 is coming in late TestSearchResult testResult4 = new TestSearchResult("1", "other file"); model.addSearchResult(testResult1); model.addSearchResult(testResult2); model.addSearchResult(testResult3); model.addSearchResult(testResult4); List<VisualSearchResult> results = model.getGroupedSearchResults(); Assert.assertEquals(2, results.size()); VisualSearchResult group0 = results.get(0); List<VisualSearchResult> similarResults0 = group0.getSimilarResults(); Assert.assertEquals(0, similarResults0.size()); List<SearchResult> coreResults0 = group0.getCoreSearchResults(); Assert.assertEquals(3, coreResults0.size()); VisualSearchResult group1 = results.get(1); List<VisualSearchResult> similarResults1 = group1.getSimilarResults(); Assert.assertEquals(1, similarResults1.size()); List<SearchResult> coreResults1 = group1.getCoreSearchResults(); Assert.assertEquals(1, coreResults1.size()); Assert.assertNull(group1.getSimilarityParent()); Assert.assertEquals(group1, group0.getSimilarityParent()); }
public void testSameNameHyphenNameHyphenName() { Map<FilePropertyKey, Object> properties1 = new HashMap<FilePropertyKey, Object>(); properties1.put(FilePropertyKey.NAME, "test-foo-bar"); SearchResult searchResult1 = new TestSearchResult("1", "test-foo-bar.mp3", properties1); Map<FilePropertyKey, Object> properties2 = new HashMap<FilePropertyKey, Object>(); properties2.put(FilePropertyKey.NAME, "test-foo-bar"); SearchResult searchResult2 = new TestSearchResult("2", "test-foo-bar.mp3", properties2); model .getGroupedSearchResults() .addListEventListener( new GroupingListEventListener(new AudioMetaDataSimilarResultsDetector())); model.addSearchResult(searchResult1); model.addSearchResult(searchResult2); List<VisualSearchResult> results = model.getGroupedSearchResults(); Assert.assertEquals(2, results.size()); VisualSearchResult group0 = results.get(0); List<VisualSearchResult> similarResults0 = group0.getSimilarResults(); Assert.assertEquals(1, similarResults0.size()); List<SearchResult> coreResults0 = group0.getCoreSearchResults(); Assert.assertEquals(1, coreResults0.size()); VisualSearchResult group1 = results.get(1); List<VisualSearchResult> similarResults1 = group1.getSimilarResults(); Assert.assertEquals(0, similarResults1.size()); List<SearchResult> coreResults1 = group1.getCoreSearchResults(); Assert.assertEquals(1, coreResults1.size()); Assert.assertNull(group0.getSimilarityParent()); Assert.assertEquals(group0, group1.getSimilarityParent()); }
public void testGroupByName4Urns() { model .getGroupedSearchResults() .addListEventListener(new GroupingListEventListener(new SimilarResultsFileNameDetector())); TestSearchResult testResult1 = new TestSearchResult("1", "other file"); TestSearchResult testResult2 = new TestSearchResult("2", "other file"); TestSearchResult testResult3 = new TestSearchResult("3", "other file"); TestSearchResult testResult4 = new TestSearchResult("4", "other file"); model.addSearchResult(testResult1); model.addSearchResult(testResult2); model.addSearchResult(testResult3); model.addSearchResult(testResult4); List<VisualSearchResult> results = model.getGroupedSearchResults(); Assert.assertEquals(4, results.size()); VisualSearchResult group0 = results.get(0); List<VisualSearchResult> similarResults0 = group0.getSimilarResults(); Assert.assertEquals(3, similarResults0.size()); List<SearchResult> coreResults0 = group0.getCoreSearchResults(); Assert.assertEquals(1, coreResults0.size()); VisualSearchResult group1 = results.get(1); List<VisualSearchResult> similarResults1 = group1.getSimilarResults(); Assert.assertEquals(0, similarResults1.size()); List<SearchResult> coreResults1 = group1.getCoreSearchResults(); Assert.assertEquals(1, coreResults1.size()); VisualSearchResult group2 = results.get(2); List<VisualSearchResult> similarResults2 = group2.getSimilarResults(); Assert.assertEquals(0, similarResults2.size()); List<SearchResult> coreResults2 = group2.getCoreSearchResults(); Assert.assertEquals(1, coreResults2.size()); VisualSearchResult group3 = results.get(3); List<VisualSearchResult> similarResults3 = group3.getSimilarResults(); Assert.assertEquals(0, similarResults3.size()); List<SearchResult> coreResults3 = group1.getCoreSearchResults(); Assert.assertEquals(1, coreResults3.size()); Assert.assertEquals(group0, group1.getSimilarityParent()); Assert.assertNull(group0.getSimilarityParent()); Assert.assertEquals(group0, group2.getSimilarityParent()); Assert.assertEquals(group0, group3.getSimilarityParent()); }
public void testGroupingByName3UrnsNameMatchViaTransitiveProperty3GroupHasMoreFiles() { model .getGroupedSearchResults() .addListEventListener(new GroupingListEventListener(new SimilarResultsFileNameDetector())); TestSearchResult testResult1 = new TestSearchResult("1", "blah1 file"); TestSearchResult testResult2 = new TestSearchResult("1", "blah1 file"); TestSearchResult testResult3 = new TestSearchResult("2", "blah2 file"); TestSearchResult testResult4 = new TestSearchResult("2", "blah2 file"); TestSearchResult testResult5 = new TestSearchResult("3", "blah1 file"); TestSearchResult testResult6 = new TestSearchResult("3", "blah2 file"); TestSearchResult testResult7 = new TestSearchResult("3", "blah3 file"); model.addSearchResult(testResult1); model.addSearchResult(testResult2); model.addSearchResult(testResult3); model.addSearchResult(testResult4); model.addSearchResult(testResult5); model.addSearchResult(testResult6); model.addSearchResult(testResult7); List<VisualSearchResult> results = model.getGroupedSearchResults(); Assert.assertEquals(3, results.size()); VisualSearchResult group0 = results.get(0); List<VisualSearchResult> similarResults0 = group0.getSimilarResults(); Assert.assertEquals(0, similarResults0.size()); List<SearchResult> coreResults0 = group0.getCoreSearchResults(); Assert.assertEquals(2, coreResults0.size()); VisualSearchResult group1 = results.get(1); List<VisualSearchResult> similarResults1 = group1.getSimilarResults(); Assert.assertEquals(2, similarResults1.size()); List<SearchResult> coreResults1 = group1.getCoreSearchResults(); Assert.assertEquals(2, coreResults1.size()); VisualSearchResult group2 = results.get(2); List<VisualSearchResult> similarResults2 = group2.getSimilarResults(); Assert.assertEquals(0, similarResults2.size()); List<SearchResult> coreResults2 = group2.getCoreSearchResults(); Assert.assertEquals(3, coreResults2.size()); Assert.assertNull(group1.getSimilarityParent()); Assert.assertEquals(group1, group2.getSimilarityParent()); Assert.assertEquals(group1, group0.getSimilarityParent()); }
public void testVisibility() { model .getGroupedSearchResults() .addListEventListener(new GroupingListEventListener(new SimilarResultsFileNameDetector())); TestSearchResult testResult1 = new TestSearchResult("1", "blah1 file"); TestSearchResult testResult2 = new TestSearchResult("1", "blah1 file"); TestSearchResult testResult3 = new TestSearchResult("2", "blah1 file"); TestSearchResult testResult4 = new TestSearchResult("2", "blah2 file"); TestSearchResult testResult5 = new TestSearchResult("3", "blah1 file"); TestSearchResult testResult6 = new TestSearchResult("3", "blah2 file"); model.addSearchResult(testResult1); List<VisualSearchResult> results = model.getGroupedSearchResults(); Assert.assertEquals(1, results.size()); VisualSearchResult result0 = results.get(0); Assert.assertTrue(result0.isVisible()); Assert.assertFalse(result0.isChildrenVisible()); result0.setChildrenVisible(true); Assert.assertTrue(result0.isVisible()); Assert.assertTrue(result0.isChildrenVisible()); model.addSearchResult(testResult2); Assert.assertTrue(result0.isVisible()); Assert.assertTrue(result0.isChildrenVisible()); model.addSearchResult(testResult3); Assert.assertTrue(result0.isVisible()); Assert.assertTrue(result0.isChildrenVisible()); List<VisualSearchResult> children = result0.getSimilarResults(); Assert.assertEquals(1, children.size()); VisualSearchResult child = children.get(0); Assert.assertTrue(child.isVisible()); result0.setChildrenVisible(false); Assert.assertTrue(result0.isVisible()); Assert.assertFalse(result0.isChildrenVisible()); Assert.assertFalse(child.isVisible()); result0.setChildrenVisible(true); model.addSearchResult(testResult4); model.addSearchResult(testResult5); children = result0.getSimilarResults(); Assert.assertEquals(2, children.size()); VisualSearchResult child0 = children.get(0); VisualSearchResult child1 = children.get(1); Assert.assertTrue(child0.isVisible()); Assert.assertTrue(child1.isVisible()); result0.setChildrenVisible(false); model.addSearchResult(testResult6); children = result0.getSimilarResults(); Assert.assertEquals(2, children.size()); child0 = children.get(0); child1 = children.get(1); Assert.assertFalse(child0.isVisible()); Assert.assertFalse(child1.isVisible()); result0.setChildrenVisible(true); Assert.assertTrue(child0.isVisible()); Assert.assertTrue(child1.isVisible()); results = model.getGroupedSearchResults(); Assert.assertEquals(3, results.size()); VisualSearchResult group0 = results.get(0); List<VisualSearchResult> similarResults0 = group0.getSimilarResults(); Assert.assertEquals(2, similarResults0.size()); List<SearchResult> coreResults0 = group0.getCoreSearchResults(); Assert.assertEquals(2, coreResults0.size()); VisualSearchResult group1 = results.get(1); List<VisualSearchResult> similarResults1 = group1.getSimilarResults(); Assert.assertEquals(0, similarResults1.size()); List<SearchResult> coreResults1 = group1.getCoreSearchResults(); Assert.assertEquals(2, coreResults1.size()); VisualSearchResult group2 = results.get(2); List<VisualSearchResult> similarResults2 = group2.getSimilarResults(); Assert.assertEquals(0, similarResults2.size()); List<SearchResult> coreResults2 = group2.getCoreSearchResults(); Assert.assertEquals(2, coreResults2.size()); Assert.assertNull(group0.getSimilarityParent()); Assert.assertEquals(group0, group2.getSimilarityParent()); Assert.assertEquals(group0, group1.getSimilarityParent()); }