public GetKeysBetween ( AHAddress add1, AHAddress add2 ) : LinkedList |
||
add1 | AHAddress | One of the address end points. |
add2 | AHAddress | Another of the address end points. |
리턴 | LinkedList |
public void Test2() { TableServerData tsd = new TableServerData("0"); RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider(); MemBlock[] addresses = new MemBlock[100]; byte[] value = new byte[20]; rng.GetBytes(value); DateTime now = DateTime.UtcNow; DateTime lease_end = now.AddMinutes(1); for (int i = 0; i < addresses.Length; i++) { addresses[i] = (new AHAddress(rng)).ToMemBlock(); tsd.AddEntry(new Entry(addresses[i], value, now, lease_end)); } AHAddress start = new AHAddress(rng); AHAddress end = new AHAddress(rng); LinkedList <MemBlock> keys_se = tsd.GetKeysBetween(start, end); LinkedList <MemBlock> keys_es = tsd.GetKeysBetween(end, start); String output = " - " + start + ":" + end; if (start.IsLeftOf(end)) { foreach (MemBlock address in addresses) { AHAddress addr = new AHAddress(address); if (addr.IsLeftOf(end) && addr.IsRightOf(start)) { Assert.IsTrue(keys_se.Contains(address), addr + " in lse" + output); Assert.IsTrue(keys_es.Contains(address), addr + " in les" + output); } else { Assert.IsFalse(keys_se.Contains(address), addr + " out lse" + output); Assert.IsFalse(keys_es.Contains(address), addr + " out les" + output); } } } else { foreach (MemBlock address in addresses) { AHAddress addr = new AHAddress(address); if (addr.IsLeftOf(start) && addr.IsRightOf(end)) { Assert.IsTrue(keys_se.Contains(address), addr + " in rse" + output); Assert.IsTrue(keys_es.Contains(address), addr + " in res" + output); } else { Assert.IsFalse(keys_se.Contains(address), addr + " out rse" + output); Assert.IsFalse(keys_es.Contains(address), addr + " out res" + output); } } } LinkedList <MemBlock> keys = tsd.GetKeys(); foreach (MemBlock addr in addresses) { Assert.IsTrue(keys.Contains(addr), "keys does not contain: " + (new AHAddress(addr))); } }
public void Test2() { TableServerData tsd = new TableServerData("0"); RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider(); MemBlock[] addresses = new MemBlock[100]; byte[] value = new byte[20]; rng.GetBytes(value); DateTime now = DateTime.UtcNow; DateTime lease_end = now.AddMinutes(1); for(int i = 0; i < addresses.Length; i++) { addresses[i] = (new AHAddress(rng)).ToMemBlock(); tsd.AddEntry(new Entry(addresses[i], value, now, lease_end)); } AHAddress start = new AHAddress(rng); AHAddress end = new AHAddress(rng); LinkedList<MemBlock> keys_se = tsd.GetKeysBetween(start, end); LinkedList<MemBlock> keys_es = tsd.GetKeysBetween(end, start); String output = " - " +start + ":" + end; if(start.IsLeftOf(end)) { foreach(MemBlock address in addresses) { AHAddress addr = new AHAddress(address); if(addr.IsLeftOf(end) && addr.IsRightOf(start)) { Assert.IsTrue(keys_se.Contains(address), addr + " in lse" + output); Assert.IsTrue(keys_es.Contains(address), addr + " in les" + output); } else { Assert.IsFalse(keys_se.Contains(address), addr + " out lse" + output); Assert.IsFalse(keys_es.Contains(address), addr + " out les" + output); } } } else { foreach(MemBlock address in addresses) { AHAddress addr = new AHAddress(address); if(addr.IsLeftOf(start) && addr.IsRightOf(end)) { Assert.IsTrue(keys_se.Contains(address), addr + " in rse" + output); Assert.IsTrue(keys_es.Contains(address), addr + " in res" + output); } else { Assert.IsFalse(keys_se.Contains(address), addr + " out rse" + output); Assert.IsFalse(keys_es.Contains(address), addr + " out res" + output); } } } LinkedList<MemBlock> keys = tsd.GetKeys(); foreach(MemBlock addr in addresses) { Assert.IsTrue(keys.Contains(addr), "keys does not contain: " + (new AHAddress(addr))); } }