comparison test/org/tmatesoft/hg/test/TestRevisionMaps.java @ 657:6334b0267103

ParentChildMap can supply RevisionMap. Refactor ArrayHelper to keep most of sorted/reverse index magic inside
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Thu, 04 Jul 2013 20:27:45 +0200
parents a937e63b6e02
children 19f5167c2155
comparison
equal deleted inserted replaced
656:a937e63b6e02 657:6334b0267103
26 import org.tmatesoft.hg.core.HgException; 26 import org.tmatesoft.hg.core.HgException;
27 import org.tmatesoft.hg.core.Nodeid; 27 import org.tmatesoft.hg.core.Nodeid;
28 import org.tmatesoft.hg.repo.HgChangelog; 28 import org.tmatesoft.hg.repo.HgChangelog;
29 import org.tmatesoft.hg.repo.HgParentChildMap; 29 import org.tmatesoft.hg.repo.HgParentChildMap;
30 import org.tmatesoft.hg.repo.HgRepository; 30 import org.tmatesoft.hg.repo.HgRepository;
31 import org.tmatesoft.hg.repo.HgRevisionMap;
31 32
32 /** 33 /**
33 * 34 *
34 * @author Artem Tikhomirov 35 * @author Artem Tikhomirov
35 * @author TMate Software Ltd. 36 * @author TMate Software Ltd.
99 errorCollector.assertEquals(Arrays.asList(allRevs[2], allRevs[3]), parentHelper.directChildren(allRevs[1])); 100 errorCollector.assertEquals(Arrays.asList(allRevs[2], allRevs[3]), parentHelper.directChildren(allRevs[1]));
100 errorCollector.assertEquals(Arrays.asList(allRevs[8]), parentHelper.directChildren(allRevs[6])); 101 errorCollector.assertEquals(Arrays.asList(allRevs[8]), parentHelper.directChildren(allRevs[6]));
101 errorCollector.assertEquals(Collections.emptyList(), parentHelper.directChildren(allRevs[7])); 102 errorCollector.assertEquals(Collections.emptyList(), parentHelper.directChildren(allRevs[7]));
102 } 103 }
103 104
105 @Test
106 public void testRevisionMap() throws HgException {
107 // XXX this test may benefit from external huge repository
108 final HgRepository repo = Configuration.get().find("test-annotate");
109 Nodeid[] allRevs = RepoUtils.allRevisions(repo);
110 final HgChangelog clog = repo.getChangelog();
111 final HgRevisionMap<HgChangelog> rmap = new HgRevisionMap<HgChangelog>(clog).init();
112 doTestRevisionMap(allRevs, rmap);
113 }
114
115 @Test
116 public void testRevisionMapFromParentChildMap() throws HgException {
117 final HgRepository repo = Configuration.get().find("test-annotate");
118 Nodeid[] allRevs = RepoUtils.allRevisions(repo);
119 HgParentChildMap<HgChangelog> parentHelper = new HgParentChildMap<HgChangelog>(repo.getChangelog());
120 parentHelper.init();
121 doTestRevisionMap(allRevs, parentHelper.getRevisionMap());
122 }
123
124 private void doTestRevisionMap(Nodeid[] allRevs, HgRevisionMap<HgChangelog> rmap) {
125 for (int i = 0; i < allRevs.length; i++) {
126 errorCollector.assertEquals(i, rmap.revisionIndex(allRevs[i]));
127 errorCollector.assertEquals(allRevs[i], rmap.revision(i));
128 }
129 }
104 } 130 }