public void TestMethodBetterLayoutAlgo() { var discCache = new DiscCache(); var discSpaceCanvasViewModel = new DiscSpaceCanvasViewModel(); discCache.Created += discSpaceCanvasViewModel.Manager.Create; discCache.Loaded += discSpaceCanvasViewModel.Manager.Load; discSpaceCanvasViewModel.Manager.Loaded += discSpaceCanvasViewModel.Loaded; discSpaceCanvasViewModel.Manager.Created += discSpaceCanvasViewModel.Create; discSpaceCanvasViewModel.Manager.Created += Manager_Created; discSpaceCanvasViewModel.UseAdvancedAlgoForLayout = true; discCache.LoadAsync(testDir).Wait(); foreach (var rectangle in discSpaceCanvasViewModel.VisibleRectangles) { Assert.IsNotNull(rectangle.ManagerRectangle); } Assert.IsNotNull(discSpaceCanvasViewModel.VisibleRoot); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.Height, 600); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRectangles.Count, 31); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRectangles.Where(x => x.Parent == discSpaceCanvasViewModel.VisibleRoot).Count(), 3); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle.Count, 3); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[0].Height, 600 - 6); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[1].Height, 600 - 6); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[2].Height, 600 - 6); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[0].ChildrenRectangle.Count, 2); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[1].ChildrenRectangle.Count, 2); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.GetFirstLineForAlgo().Count, 1); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.GetSecondLineForAlgo().Count, 1); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.GetLinesForAlgo().Count, 3); Assert.AreEqual(((DiscSpaceRectangle)discSpaceCanvasViewModel.VisibleRoot.OrderedChildren[0]).GetLinesForAlgo().Count, 2); Assert.AreEqual(((DiscSpaceRectangle)discSpaceCanvasViewModel.VisibleRoot.OrderedChildren[0]).GetLinesForAlgo()[0].Count, 1); Assert.AreEqual(((DiscSpaceRectangle)discSpaceCanvasViewModel.VisibleRoot.OrderedChildren[0]).GetLinesForAlgo()[1].Count, 1); Assert.AreEqual(((DiscSpaceRectangle)discSpaceCanvasViewModel.VisibleRoot.OrderedChildren[0].OrderedChildren[0]).GetLinesForAlgo().Count, 2); Assert.AreEqual(((DiscSpaceRectangle)discSpaceCanvasViewModel.VisibleRoot.OrderedChildren[0].OrderedChildren[0]).GetLinesForAlgo()[0].Count, 1); Assert.AreEqual(((DiscSpaceRectangle)discSpaceCanvasViewModel.VisibleRoot.OrderedChildren[0].OrderedChildren[0].OrderedChildren[0]).GetLinesForAlgo().Count, 3); Assert.AreEqual(((DiscSpaceRectangle)discSpaceCanvasViewModel.VisibleRoot.OrderedChildren[0].OrderedChildren[0].OrderedChildren[0]).GetLinesForAlgo()[0].Count, 1); Assert.AreEqual(((DiscSpaceRectangle)discSpaceCanvasViewModel.VisibleRoot.OrderedChildren[0].OrderedChildren[0].OrderedChildren[0]).GetLinesForAlgo()[1].Count, 2); Assert.AreEqual(((DiscSpaceRectangle)discSpaceCanvasViewModel.VisibleRoot.OrderedChildren[0].OrderedChildren[0].OrderedChildren[0]).GetLinesForAlgo()[2].Count, 1); }
public void TestAddedEvents() { CreatedDiscSpaces.Clear(); var discCache = new DiscCache(); var discSpace = new DiscSpaceManager(); discSpaceManager = discSpace; discCache.Created += discSpace.Create; discCache.Loaded += discSpace.Load; discSpace.Created += DiscSpace_Created; discCache.LoadAsync(testDir).Wait(); discCache.Created -= discSpace.Create; discSpace.Created -= DiscSpace_Created; Assert.AreEqual(discCache.drivesCache.Count, 1); Assert.AreEqual(discCache.drivesCache[0].Length, 40599922); Assert.AreEqual(discSpace.OrderedByLevel.Count, 38); Assert.IsTrue(discSpace.Mapping.Values.ToList()[0].Length > discSpace.MinimalLimit); Assert.AreEqual(new HashSet <DiscSpace>(CreatedDiscSpaces).Count, CreatedDiscSpaces.Count); var diffSet = new HashSet <DiscSpace>(CreatedDiscSpaces).Where(x => !discSpace.Mapping.Values.Contains(x)); Assert.AreEqual(diffSet.Count(), 0); var list = discSpace.OrderedByLevel; list.Reverse(); foreach (var space in list) { var info = discSpace.MapBack(space); Assert.AreEqual(info.Name, space.Name); if (info is DirectoryCache) { var directory = (DirectoryCache)info; Assert.AreEqual(directory.Count, info.Count); } Assert.AreEqual(info.Length, space.Length); } var cache = CreatedDiscSpaces.ConvertAll(x => discSpace.MapBack(x)); Assert.AreEqual(new HashSet <IInfoCache>(cache).Count, cache.Count); //Assert.AreEqual(CreatedDiscSpaces.Count, discSpace.OrderedByLevel.Count); var missing = discSpace.OrderedByLevel.Where(x => !CreatedDiscSpaces.Contains(x)); Assert.AreEqual(missing.Count(), 0); }
public void TestAdded() { var discCache = new DiscCache(); var discSpace = new DiscSpaceManager(); discCache.Created += discSpace.Create; discCache.Loaded += discSpace.Load; discCache.LoadAsync(testDir).Wait(); Assert.AreEqual(discCache.drivesCache.Count, 1); Assert.AreEqual(discCache.drivesCache[0].Length, 40599922); Assert.AreEqual(discSpace.OrderedByLevel.Count, 38); Assert.IsTrue(discSpace.Mapping.Values.ToList()[0].Length > discSpace.MinimalLimit); }
public void TestDirectoriesLoaded() { var discCache = new DiscCache(); discCache.LoadAsync(testDir).Wait(); var rootDriveCache = discCache.drivesCache[0]; Assert.AreEqual(rootDriveCache.Length, 40599922, "size of root directories"); Assert.AreEqual(rootDriveCache.directories[0].Length, 16676785, "size of " + rootDriveCache.directories[0].Name); Assert.AreEqual(rootDriveCache.directories[1].Length, 1706954, "size of " + rootDriveCache.directories[1].Name); Assert.AreEqual(rootDriveCache.directories[2].Length, 22211624, "size of " + rootDriveCache.directories[2].Name); Assert.AreEqual(rootDriveCache.files[0].Length, 4559, "size of " + rootDriveCache.files[0].Name); Assert.AreEqual(40599922, 16676785 + 1706954 + 22211624 + 4559); }
public void TestRecursive() { var discCache = new DiscCache(); var discSpace = new DiscSpaceManager(); discCache.Created += discSpace.Create; discCache.Loaded += discSpace.Load; discCache.LoadAsync(testDir).Wait(); Assert.AreEqual(discCache.drivesCache.Count, 1); Assert.AreEqual(discCache.drivesCache[0].Length, 40599922); Assert.AreEqual(discSpace.Mapping.Values.Sum(x => x.OwnLength), 40599922); Assert.AreEqual(discSpace.OrderedByLevel.Count, 38); // Assert.AreEqual(discSpace.Root.ChildrenRecursive.Count, discSpace.Mapping.Count-1); Assert.AreEqual(discSpace.Root.Level, 0); Assert.AreEqual(discSpace.Root.Children.Count, 3); Assert.AreEqual(discSpace.Root.Children[0].Level, 1); Assert.AreEqual(discSpace.Root.Children[1].Level, 1); Assert.AreEqual(discSpace.Root.Children[2].Level, 1); Assert.AreEqual(discSpace.Root.Length, 40599922); Assert.AreEqual(discSpace.Root.OrderedChildren[0].ChildrenRecursive.Count, 19); Assert.AreEqual(discSpace.Root.OrderedChildren[1].ChildrenRecursive.Count, 15); Assert.AreEqual(discSpace.Root.OrderedChildren[2].ChildrenRecursive.Count, 0); Assert.AreEqual(discSpace.Root.OrderedChildren[0].Count, 18); Assert.AreEqual(discSpace.Root.OrderedChildren[1].Count, 16); Assert.AreEqual(discSpace.Root.OrderedChildren[2].Count, 11); Assert.AreEqual(discSpace.Root.OrderedChildren[0].Length, 22211624); Assert.AreEqual(discSpace.Root.OrderedChildren[1].Length, 16676785); Assert.AreEqual(discSpace.Root.OrderedChildren[2].Length, 1706954); Assert.AreEqual(discSpace.Root.OrderedChildren[0].LengthOfAllPreviousChildren, 0); Assert.AreEqual(discSpace.Root.OrderedChildren[1].LengthOfAllPreviousChildren, 22211624); Assert.AreEqual(discSpace.Root.OrderedChildren[2].LengthOfAllPreviousChildren, 22211624 + 16676785); Assert.AreEqual(discSpace.Root.OrderedChildren[0].Children.Count, 2); Assert.AreEqual(discSpace.Root.OrderedChildren[0].Children[0].Level, 2); Assert.AreEqual(discSpace.Root.OrderedChildren[0].Children[1].Level, 2); }
public void TestDirectoriesLoadedEvents() { CreatedEvents.Clear(); var discCache = new DiscCache(); discCache.Created += DiscCache_Created; discCache.Loaded += DiscCache_Loaded; discCache.LoadAsync(testDir).Wait(); discCache.Created -= DiscCache_Created; var rootDriveCache = discCache.drivesCache[0]; Assert.AreEqual(CreatedEvents.Count, 4600); Assert.AreEqual(CreatedEvents.FindAll(x => x is FileCache).Sum(x => x.Length), rootDriveCache.Length); }
public void TestDirectoriesCached() { var discCache = new DiscCache(); discCache.LoadAsync(testDir).Wait(); var rootDriveCache = discCache.drivesCache[0]; Assert.AreEqual(discCache.drivesCache.Count, 1, "number of root directories"); Assert.AreEqual(rootDriveCache.directories.Count, 3, "number of first level directories"); Assert.AreEqual(rootDriveCache.files.Count, 1, "number of first level files"); Assert.AreEqual(rootDriveCache.directories[0].directories.Count, 16, "number of directories in " + rootDriveCache.directories[0].Name); Assert.AreEqual(rootDriveCache.directories[1].directories.Count, 11, "number of directories in " + rootDriveCache.directories[1].Name); Assert.AreEqual(rootDriveCache.directories[2].directories.Count, 18, "number of directories in " + rootDriveCache.directories[2].Name); Assert.AreEqual(rootDriveCache.directories[0].CountRecursive, 599, "CountRecursive of " + rootDriveCache.directories[0].Name); Assert.AreEqual(rootDriveCache.directories[1].CountRecursive, 715, "CountRecursive of " + rootDriveCache.directories[1].Name); Assert.AreEqual(rootDriveCache.directories[2].CountRecursive, 3284, "CountRecursive of " + rootDriveCache.directories[2].Name); Assert.AreEqual(rootDriveCache.CountRecursive, 3284 + 715 + 599 + 1 + rootDriveCache.files.Count, "CountRecursive of " + rootDriveCache.Name); }
public void TestFastLength() { CreatedDiscSpaces.Clear(); var discCache = new DiscCache(); var discSpace = new DiscSpaceManager(); discSpaceManager = discSpace; discCache.Created += discSpace.Create; discCache.Loaded += discSpace.Load; discSpace.Created += DiscSpace_Created; discCache.LoadAsync(testDir).Wait(); discCache.Created -= discSpace.Create; discSpace.Created -= DiscSpace_Created; foreach (var space in discSpace.OrderedByLevel) { Assert.AreEqual(space.Length, space.LengthSlow); } }
public void TestOtherVisibleRoot() { var discCache = new DiscCache(); var discSpaceCanvasViewModel = new DiscSpaceCanvasViewModel(); discCache.Created += discSpaceCanvasViewModel.Manager.Create; discCache.Loaded += discSpaceCanvasViewModel.Manager.Load; discSpaceCanvasViewModel.Manager.Loaded += discSpaceCanvasViewModel.Loaded; discSpaceCanvasViewModel.Manager.Created += discSpaceCanvasViewModel.Create; discSpaceCanvasViewModel.Manager.Created += Manager_Created; discCache.LoadAsync(testDir).Wait(); foreach (var rectangle in discSpaceCanvasViewModel.VisibleRectangles) { Assert.IsNotNull(rectangle.ManagerRectangle); } Assert.IsNotNull(discSpaceCanvasViewModel.VisibleRoot); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRectangles.Count, 31); discSpaceCanvasViewModel.VisibleRoot = (DiscSpaceRectangle)discSpaceCanvasViewModel.VisibleRoot.Children[0]; Assert.AreEqual(discSpaceCanvasViewModel.VisibleRectangles.Count, 16); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.Height, 600); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle.Count, 2); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[0].Height, 600 - 6); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[1].Height, 600 - 6); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[0].X, 3); Assert.AreNotEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[1].X, 3); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[0].Y, 3); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[1].Y, 3); }
public void TestMethodLoadAndParents() { var discCache = new DiscCache(); var discSpaceCanvasViewModel = new DiscSpaceCanvasViewModel(); discCache.Created += discSpaceCanvasViewModel.Manager.Create; discCache.Loaded += discSpaceCanvasViewModel.Manager.Load; discSpaceCanvasViewModel.Manager.Loaded += discSpaceCanvasViewModel.Loaded; discSpaceCanvasViewModel.Manager.Created += discSpaceCanvasViewModel.Create; discSpaceCanvasViewModel.Manager.Created += Manager_Created; discCache.LoadAsync(testDir).Wait(); foreach (var rectangle in discSpaceCanvasViewModel.VisibleRectangles) { Assert.IsNotNull(rectangle.ManagerRectangle); } Assert.IsNotNull(discSpaceCanvasViewModel.VisibleRoot); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.Height, 600); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRectangles.Count, 31); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRectangles.Where(x => x.Parent == discSpaceCanvasViewModel.VisibleRoot).Count(), 3); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle.Count, 3); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[0].Height, 600 - 6); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[1].Height, 600 - 6); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[2].Height, 600 - 6); //Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.Children[2].Width + discSpaceCanvasViewModel.VisibleRoot.Children[2].X, 600 - 6); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[0].X, 3); Assert.AreNotEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[1].X, 3); Assert.AreNotEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[2].X, 3); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[0].Y, 3); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[1].Y, 3); Assert.AreEqual(discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[2].Y, 3); var first = discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[0]; Assert.AreEqual(first.Children.Count(), 2); Assert.AreEqual(first.ChildrenRectangle[0].Width, first.Width - 6); Assert.AreEqual(first.ChildrenRectangle[1].Width, first.Width - 6); Assert.AreEqual(first.ChildrenRectangle[0].X, first.X + 3); Assert.AreEqual(first.ChildrenRectangle[1].X, first.X + 3); Assert.AreEqual(first.ChildrenRectangle[0].Y, first.Y + 3); Assert.AreNotEqual(first.ChildrenRectangle[1].Y, first.Y + 3); var second = discSpaceCanvasViewModel.VisibleRoot.ChildrenRectangle[1]; Assert.AreEqual(second.Children.Count(), 2); Assert.AreEqual(second.ChildrenRectangle[0].Width, second.Width - 6); Assert.AreEqual(second.ChildrenRectangle[1].Width, second.Width - 6); Assert.AreEqual(second.ChildrenRectangle[0].Parent, second); Assert.AreEqual(second.ChildrenRectangle[1].Parent, second); Assert.AreEqual(second.ChildrenRectangle[0].X, second.X + 3); Assert.AreEqual(second.ChildrenRectangle[1].X, second.X + 3); Assert.AreEqual(second.ChildrenRectangle[0].Y, second.Y + 3); Assert.AreNotEqual(second.ChildrenRectangle[1].Y, second.Y + 3); Assert.AreEqual(CreatedEvents.Where(x => x.Height >= 6 && x.Width >= 6).Count(), discSpaceCanvasViewModel.VisibleRectangles.Count); }