public void HighBasin_31() { var data = new BasinData(new HealpixManager(2), false, false); var basin3 = data.PixMan.Pixels[31]; foreach (var basin in data.PixMan.Pixels) { for (var i = 0; i < 4; i++) { Assert.IsFalse(basin.Volumes[i]); } } basin3.hOQ = 500; // data.Cycle(); Cycle(data); Cycle(data); Cycle(data); Cycle(data); var movedBasins = 0; foreach (var basin in data.PixMan.Pixels) { if (basin.hOQ > 0) { movedBasins++; } } Assert.Less(movedBasins, 13); }
public void Hto() { var man = new HealpixManager(2); var data = new BasinData(man, false, true); foreach (var aBasin in data.PixMan.Pixels) { Assert.AreEqual(0, aBasin.hOQ); } data.GradientAndHeightCrosses(); var basin = data.PixMan.Pixels[(int)(man.Npix * .415)]; // 79 for k2, 20398 for k6 Assert.AreEqual(96, basin.Hto[0] / 1000, 1); Assert.AreEqual(90, basin.Hto[1] / 1000, 1); TestNeighbors(basin); foreach (var aBasin in data.PixMan.Pixels) { if (aBasin != basin && !(from n in basin.Neibors.Cast <Basin3>() where n == aBasin select n).Any()) { Assert.AreEqual(0, aBasin.hOQ); } } basin = data.PixMan.Pixels[63]; Assert.AreEqual(109, basin.Hto[0] / 1000, 1); Assert.AreEqual(96, basin.Hto[1] / 1000, 1); TestNeighbors(basin); basin = data.PixMan.Pixels[47]; Assert.AreEqual(137, basin.Hto[0] / 1000, 1); Assert.AreEqual(109, basin.Hto[1] / 1000, 1); TestNeighbors(basin); basin = data.PixMan.Pixels[31]; Assert.AreEqual(156, basin.Hto[0] / 1000, 1); Assert.AreEqual(137, basin.Hto[1] / 1000, 1); TestNeighbors(basin); basin = data.PixMan.Pixels[17]; Assert.AreEqual(145, basin.Hto[0] / 1000, 1); Assert.AreEqual(156, basin.Hto[1] / 1000, 1); TestNeighbors(basin); basin = data.PixMan.Pixels[7]; Assert.AreEqual(139, basin.Hto[0] / 1000, 1); Assert.AreEqual(145, basin.Hto[1] / 1000, 1); TestNeighbors(basin); }
public void Intersect_2() { var data = new BasinData(new HealpixManager(2), false, true); foreach (var basin in data.PixMan.Pixels) { foreach (Direction to in Enum.GetValues(typeof(Direction))) { var toBasin = basin.Neibors[to]; var from0to1 = basin.S_q.AbsoluteDistanceTo(toBasin.Q3); var from1to0 = toBasin.S_q.AbsoluteDistanceTo(basin.Q3); Assert.AreEqual(from1to0, from0to1, from1to0 / 100); } } }
public void Hto_SameRing() { var data = new BasinData(new HealpixManager(2), false, true); foreach (var aBasin in data.PixMan.Pixels) { Assert.AreEqual(0, aBasin.hOQ); } data.GradientAndHeightCrosses(); for (var p = 43; p <= 50; p++) { var basin = data.PixMan.Pixels[p]; Assert.AreEqual(137494, basin.Hto[0], 1); Assert.AreEqual(108624, basin.Hto[1], 1); TestNeighbors(basin); } }