public virtual void TestEmptyMap() { ObjectIdOwnerMap<ObjectIdOwnerMapTest.SubId> m = new ObjectIdOwnerMap<ObjectIdOwnerMapTest.SubId >(); NUnit.Framework.Assert.IsTrue(m.IsEmpty()); NUnit.Framework.Assert.AreEqual(0, m.Size()); Iterator<ObjectIdOwnerMapTest.SubId> i = m.Iterator(); NUnit.Framework.Assert.IsNotNull(i); NUnit.Framework.Assert.IsFalse(i.HasNext()); NUnit.Framework.Assert.IsFalse(m.Contains(Id(1))); }
internal BaseSearch(ProgressMonitor countingMonitor, ICollection<RevTree> bases, ObjectIdOwnerMap<ObjectToPack> objects, IList<ObjectToPack> edges, ObjectReader or) { progress = countingMonitor; reader = or; baseTrees = Sharpen.Collections.ToArray(bases, new ObjectId[bases.Count]); objectsMap = objects; edgeObjects = edges; alreadyProcessed = new IntSet(); treeCache = new ObjectIdOwnerMap<BaseSearch.TreeWithData>(); parser = new CanonicalTreeParser(); idBuf = new MutableObjectId(); }
internal BaseSearch(ProgressMonitor countingMonitor, ICollection <RevTree> bases, ObjectIdOwnerMap <ObjectToPack> objects, IList <ObjectToPack> edges, ObjectReader or) { progress = countingMonitor; reader = or; baseTrees = Sharpen.Collections.ToArray(bases, new ObjectId[bases.Count]); objectsMap = objects; edgeObjects = edges; alreadyProcessed = new IntSet(); treeCache = new ObjectIdOwnerMap <BaseSearch.TreeWithData>(); parser = new CanonicalTreeParser(); idBuf = new MutableObjectId(); }
/// <summary>Parse the pack stream.</summary> /// <remarks>Parse the pack stream.</remarks> /// <param name="receiving"> /// receives progress feedback during the initial receiving /// objects phase. If null, /// <see cref="NGit.NullProgressMonitor">NGit.NullProgressMonitor</see> /// will be /// used. /// </param> /// <param name="resolving">receives progress feedback during the resolving objects phase. /// </param> /// <returns> /// the pack lock, if one was requested by setting /// <see cref="SetLockMessage(string)">SetLockMessage(string)</see> /// . /// </returns> /// <exception cref="System.IO.IOException">the stream is malformed, or contains corrupt objects. /// </exception> public virtual PackLock Parse(ProgressMonitor receiving, ProgressMonitor resolving ) { if (receiving == null) { receiving = NullProgressMonitor.INSTANCE; } if (resolving == null) { resolving = NullProgressMonitor.INSTANCE; } if (receiving == resolving) { receiving.Start(2); } try { ReadPackHeader(); entries = new PackedObjectInfo[(int)objectCount]; baseById = new ObjectIdOwnerMap<PackParser.DeltaChain>(); baseByPos = new LongMap<PackParser.UnresolvedDelta>(); deferredCheckBlobs = new BlockList<PackedObjectInfo>(); receiving.BeginTask(JGitText.Get().receivingObjects, (int)objectCount); try { for (int done = 0; done < objectCount; done++) { IndexOneObject(); receiving.Update(1); if (receiving.IsCancelled()) { throw new IOException(JGitText.Get().downloadCancelled); } } ReadPackFooter(); EndInput(); } finally { receiving.EndTask(); } if (!deferredCheckBlobs.IsEmpty()) { DoDeferredCheckBlobs(); } if (deltaCount > 0) { if (resolving is BatchingProgressMonitor) { ((BatchingProgressMonitor)resolving).SetDelayStart(1000, TimeUnit.MILLISECONDS); } resolving.BeginTask(JGitText.Get().resolvingDeltas, deltaCount); ResolveDeltas(resolving); if (entryCount < objectCount) { if (!IsAllowThin()) { throw new IOException(MessageFormat.Format(JGitText.Get().packHasUnresolvedDeltas , Sharpen.Extensions.ValueOf(objectCount - entryCount))); } ResolveDeltasWithExternalBases(resolving); if (entryCount < objectCount) { throw new IOException(MessageFormat.Format(JGitText.Get().packHasUnresolvedDeltas , Sharpen.Extensions.ValueOf(objectCount - entryCount))); } } resolving.EndTask(); } packDigest = null; baseById = null; baseByPos = null; } finally { try { if (readCurs != null) { readCurs.Release(); } } finally { readCurs = null; } try { inflater.Release(); } finally { inflater = null; } } return null; }
public virtual void TestAddGetAndContains() { ObjectIdOwnerMap<ObjectIdOwnerMapTest.SubId> m = new ObjectIdOwnerMap<ObjectIdOwnerMapTest.SubId >(); m.Add(id_1); m.Add(id_2); m.Add(id_3); m.Add(id_a31); m.Add(id_b31); NUnit.Framework.Assert.IsFalse(m.IsEmpty()); NUnit.Framework.Assert.AreEqual(5, m.Size()); NUnit.Framework.Assert.AreSame(id_1, m.Get(id_1)); NUnit.Framework.Assert.AreSame(id_1, m.Get(Id(1))); NUnit.Framework.Assert.AreSame(id_1, m.Get(Id(1).Copy())); NUnit.Framework.Assert.AreSame(id_2, m.Get(Id(2).Copy())); NUnit.Framework.Assert.AreSame(id_3, m.Get(Id(3).Copy())); NUnit.Framework.Assert.AreSame(id_a31, m.Get(Id(31).Copy())); NUnit.Framework.Assert.AreSame(id_b31, m.Get(id_b31.Copy())); NUnit.Framework.Assert.IsTrue(m.Contains(id_1)); }
public virtual void TestIterator() { ObjectIdOwnerMap<ObjectIdOwnerMapTest.SubId> m = new ObjectIdOwnerMap<ObjectIdOwnerMapTest.SubId >(); m.Add(id_1); m.Add(id_2); m.Add(id_3); Iterator<ObjectIdOwnerMapTest.SubId> i = m.Iterator(); NUnit.Framework.Assert.IsTrue(i.HasNext()); NUnit.Framework.Assert.AreSame(id_1, i.Next()); NUnit.Framework.Assert.IsTrue(i.HasNext()); NUnit.Framework.Assert.AreSame(id_2, i.Next()); NUnit.Framework.Assert.IsTrue(i.HasNext()); NUnit.Framework.Assert.AreSame(id_3, i.Next()); NUnit.Framework.Assert.IsFalse(i.HasNext()); try { i.Next(); NUnit.Framework.Assert.Fail("did not fail on next with no next"); } catch (NoSuchElementException) { } // OK i = m.Iterator(); NUnit.Framework.Assert.AreSame(id_1, i.Next()); try { i.Remove(); NUnit.Framework.Assert.Fail("did not fail on remove"); } catch (NotSupportedException) { } }
public virtual void TestAddIfAbsentGrowsWithObjects() { int n = 16384; ObjectIdOwnerMap<ObjectIdOwnerMapTest.SubId> m = new ObjectIdOwnerMap<ObjectIdOwnerMapTest.SubId >(); m.Add(id_1); for (int i = 32; i < n; i++) { m.AddIfAbsent(new ObjectIdOwnerMapTest.SubId(Id(i))); } NUnit.Framework.Assert.AreEqual(n - 32 + 1, m.Size()); NUnit.Framework.Assert.AreSame(id_1, m.Get(id_1.Copy())); for (int i_1 = 32; i_1 < n; i_1++) { NUnit.Framework.Assert.IsTrue(m.Contains(Id(i_1))); } }
public virtual void TestAddIfAbsent() { ObjectIdOwnerMap<ObjectIdOwnerMapTest.SubId> m = new ObjectIdOwnerMap<ObjectIdOwnerMapTest.SubId >(); m.Add(id_1); NUnit.Framework.Assert.AreSame(id_1, m.AddIfAbsent(new ObjectIdOwnerMapTest.SubId (id_1))); NUnit.Framework.Assert.AreEqual(1, m.Size()); NUnit.Framework.Assert.AreSame(id_2, m.AddIfAbsent(id_2)); NUnit.Framework.Assert.AreEqual(2, m.Size()); NUnit.Framework.Assert.AreSame(id_a31, m.AddIfAbsent(id_a31)); NUnit.Framework.Assert.AreSame(id_b31, m.AddIfAbsent(id_b31)); NUnit.Framework.Assert.AreSame(id_a31, m.AddIfAbsent(new ObjectIdOwnerMapTest.SubId (id_a31))); NUnit.Framework.Assert.AreSame(id_b31, m.AddIfAbsent(new ObjectIdOwnerMapTest.SubId (id_b31))); NUnit.Framework.Assert.AreEqual(4, m.Size()); }