public void ExistingFilesAreNotOverwritten() { _sut.Dispose(); Directory.CreateDirectory(Path.Combine(_root, "a")); var metaFile = Path.Combine(_root, @"a\.zipfolder"); var zip0 = Path.Combine(_root, @"a\0.zip"); var zip1 = Path.Combine(_root, @"a\1.zip"); // setup fake data from previous run File.WriteAllText(metaFile, "test"); using (var testZip = new WritingArchive(zip0)) { testZip.Add("test"); } // new initialization _sut = new ZipFolderLRUCache <string>(_root, 2); var a = _sut.GetArchive("a"); a.Add("x"); _sut.Dispose(); Assert.True(File.Exists(metaFile)); Assert.True(File.Exists(zip0)); Assert.True(File.Exists(zip1)); Assert.AreEqual("test", File.ReadAllText(metaFile)); AssertZipContent(zip0, "test"); AssertZipContent(zip1, "x"); }
public void ComplexKeysArePossibleThoughNotRecommended() { var sut = new ZipFolderLRUCache <List <string> >(_root, 2); var key = new List <string> { "a", "b" }; sut.GetArchive(key); sut.Dispose(); var metaFile = Path.Combine(_root, "[a,b]\\.zipfolder"); var actual = File.ReadAllText(metaFile); var expected = key.ToFormattedJson(); Assert.AreEqual(expected, actual); }
public void AddTuple(Tuple <Query, Query> qt) { var type = qt.Item1.type; _cache.GetArchive(type).Add(qt); }
public void SizeAndCache() { Assert.AreEqual(0, _sut.Size); Assert.False(_sut.IsCached("a")); _sut.GetArchive("a"); Assert.AreEqual(1, _sut.Size); Assert.True(_sut.IsCached("a")); }
public void Run() { var startTime = DateTime.Now; var ctxZips = FindInputFiles(); var numZips = ctxZips.Count(); var currentZip = 1; var numTotalCtxs = 0; var numTotalUsages = 0; using (var cache = new ZipFolderLRUCache <CoReTypeName>(_dirOut, 1000)) { foreach (var fileName in ctxZips) { try { Log("### processing zip {0}/{1}: {2}", currentZip++, numZips, fileName); var numLocalCtxs = 0; var numLocalUsages = 0; var fullFileIn = _dirIn + fileName; using (var ra = new ReadingArchive(fullFileIn)) { Log("reading contexts..."); var ctxs = ra.GetAll <Context>(); var numCtxs = ctxs.Count; Log("found {0} contexts, exporting usages...\n\n", numCtxs); var colCounter = 0; foreach (var ctx in ctxs) { if (colCounter == 25) { Console.WriteLine(); colCounter = 0; } colCounter++; var usages = ExtractUsages(ctx); var msg = usages.Count == 0 ? "." : string.Format("{0}", usages.Count); Console.Write(msg.PadLeft(5)); foreach (var u in usages) { cache.GetArchive(u.type).Add(u); } numLocalCtxs++; numLocalUsages += usages.Count; } } Append("\n"); Log( "--> {0} contexts, {1} usages\n\n", numLocalCtxs, numLocalUsages); numTotalCtxs += numLocalCtxs; numTotalUsages += numLocalUsages; } catch (Exception e) { Log("oops, something went wrong...\n{0}", e); } } } Log("finished! (started at {0})", startTime); Log( "found a total of {0} contexts and extracted {1} usages\n\n", numTotalCtxs, numTotalUsages); }