void Update() { return; featureUpdateTimer -= Time.deltaTime; if (featureUpdateTimer < 0) { featureUpdateTimer = Random.Range(0.3f, 0.7f); GetCurrentFeatures(); foreach (CurrentFeature cf in currentFeatures) { int numGreenDotsVisible = 0; int numBrownDotsVisible = 0; if (Utils2.PointVisibleToCamera(cf.point, Camera.main)) { // green if (cf.color.g > 0.6f) { numGreenDotsVisible++; } else { numBrownDotsVisible++; } } DebugText.SetBrownDots(numBrownDotsVisible.ToString()); DebugText.SetGreenDots(numGreenDotsVisible.ToString()); FindObjectOfType <BatteryUpload> ().SetFillAmount((float)numGreenDotsVisible / 50f); } } }
private static Message CreateMessageMapKey640Keys() { var keysMap = new SortedDictionary <Number640, ICollection <Number160> >(); var set = new HashSet <Number160>(); set.Add(_sample160_1); keysMap.Add(_sample640_1, set); set = new HashSet <Number160>(); set.Add(_sample160_2); set.Add(_sample160_3); keysMap.Add(_sample640_2, set); set = new HashSet <Number160>(); set.Add(_sample160_1); set.Add(_sample160_2); set.Add(_sample160_3); set.Add(_sample160_4); set.Add(_sample160_5); keysMap.Add(_sample640_3, set); var m = Utils2.CreateDummyMessage(); m.SetKeyMap640Keys(new KeyMap640Keys(keysMap)); m.SetKeyMap640Keys(new KeyMap640Keys(keysMap)); m.SetKeyMap640Keys(new KeyMap640Keys(keysMap)); m.SetKeyMap640Keys(new KeyMap640Keys(keysMap)); m.SetKeyMap640Keys(new KeyMap640Keys(keysMap)); m.SetKeyMap640Keys(new KeyMap640Keys(keysMap)); m.SetKeyMap640Keys(new KeyMap640Keys(keysMap)); m.SetKeyMap640Keys(new KeyMap640Keys(keysMap)); return(m); }
private static Message CreateMessageSetKey640() { ICollection <Number160> sampleCollection1 = new List <Number160>(); sampleCollection1.Add(_sample160_1); sampleCollection1.Add(_sample160_2); sampleCollection1.Add(_sample160_3); ICollection <Number160> sampleCollection2 = new List <Number160>(); sampleCollection2.Add(_sample160_2); sampleCollection2.Add(_sample160_3); sampleCollection2.Add(_sample160_4); ICollection <Number160> sampleCollection3 = new List <Number160>(); sampleCollection3.Add(_sample160_3); sampleCollection3.Add(_sample160_4); sampleCollection3.Add(_sample160_5); var m = Utils2.CreateDummyMessage(); m.SetKeyCollection(new KeyCollection(_sample160_1, _sample160_1, _sample160_1, sampleCollection1)); m.SetKeyCollection(new KeyCollection(_sample160_2, _sample160_2, _sample160_2, sampleCollection2)); m.SetKeyCollection(new KeyCollection(_sample160_3, _sample160_3, _sample160_3, sampleCollection3)); m.SetKeyCollection(new KeyCollection(_sample160_4, _sample160_4, _sample160_4, sampleCollection1)); m.SetKeyCollection(new KeyCollection(_sample160_5, _sample160_5, _sample160_5, sampleCollection2)); m.SetKeyCollection(new KeyCollection(_sample160_1, _sample160_2, _sample160_3, sampleCollection3)); m.SetKeyCollection(new KeyCollection(_sample160_2, _sample160_3, _sample160_4, sampleCollection1)); m.SetKeyCollection(new KeyCollection(_sample160_3, _sample160_4, _sample160_5, sampleCollection2)); return(m); }
public void TestMessageEncodeEmpty() { // create same message object as in Java var m = Utils2.CreateDummyMessage(); var bytes = EncodeMessage(m); // validate decoding in Java Assert.IsTrue(JarRunner.WriteBytesAndTestInterop(bytes)); }
public async void TestOrder() { Peer sender = null; Peer recv1 = null; ChannelCreator cc = null; try { sender = new PeerBuilder(new Number160("0x50")) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(2525, 2525)) .SetP2PId(55) .SetPorts(2525) .Start(); recv1 = new PeerBuilder(new Number160("0x20")) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(9099, 9099)) .SetP2PId(55) .SetPorts(8088) .Start(); recv1.RawDataReply(new TestOrderRawDataReply()); for (int i = 0; i < 500; i++) { cc = await sender.ConnectionBean.Reservation.CreateAsync(0, 1); var sendDirectBuilder = new SendDirectBuilder(sender, (PeerAddress)null); var buffer = AlternativeCompositeByteBuf.CompBuffer().WriteInt(i); sendDirectBuilder.SetBuffer(new Buffer(buffer)); sendDirectBuilder.SetIsStreaming(); var tr = sender.DirectDataRpc.SendAsync(recv1.PeerAddress, sendDirectBuilder, cc); Core.Utils.Utils.AddReleaseListener(cc, tr); tr.ContinueWith(t => { int j = t.Result.Buffer(0).BackingBuffer.ReadInt(); Console.WriteLine("Received {0}.", j); }); } } finally { if (sender != null) { sender.ShutdownAsync().Wait(); } if (recv1 != null) { recv1.ShutdownAsync().Wait(); } if (cc != null) { cc.ShutdownAsync().Wait(); } } }
public async void TestGracefulHalt() { Peer sender = null; Peer recv1 = null; ChannelCreator cc = null; try { sender = new PeerBuilder(new Number160("0x9876")) .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(2424, 2424)) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetP2PId(55) .SetPorts(2424) .Start(); recv1 = new PeerBuilder(new Number160("0x1234")) .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(7777, 7777)) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetP2PId(55) .SetPorts(7777) .Start(); // bootstrap first await sender.Bootstrap().SetPeerAddress(recv1.PeerAddress).StartAsync(); Assert.IsTrue(sender.PeerBean.PeerMap.All.Count == 1); Assert.IsTrue(recv1.PeerBean.PeerMap.AllOverflow.Count == 1); // graceful shutdown cc = await recv1.ConnectionBean.Reservation.CreateAsync(1, 0); var shutdownBuilder = new ShutdownBuilder(sender); await sender.QuitRpc.QuitAsync(recv1.PeerAddress, shutdownBuilder, cc); await sender.ShutdownAsync(); sender = null; // ignore finally-block shutdown Assert.IsTrue(recv1.PeerBean.PeerMap.All.Count == 0); } finally { if (cc != null) { cc.ShutdownAsync().Wait(); } if (sender != null) { sender.ShutdownAsync().Wait(); } if (recv1 != null) { recv1.ShutdownAsync().Wait(); } } }
public void TestMessageDecodeEmpty() { // create same message object as in Java var m1 = Utils2.CreateDummyMessage(); // compare Java encoded and .NET decoded objects var m2 = DecodeMessage(JarRunner.RequestJavaBytes()); Assert.IsTrue(CheckSameContentTypes(m1, m2)); }
private void MediaTable(Section s, IEnumerable <Attachment> media, int tableColor = -1) { Table t = null; if (tableColor == -1) { t = s.AddTable().TableDefaults(); } else { t = s.AddTable().TableDefaults(tableColor); } var colWidth = 0.5 * ContentWidth(); var c0 = t.AddColumn(colWidth); var c1 = t.AddColumn(colWidth); var r0 = t.AddRow(); r0.Cells[0].AddParagraph().AddBold("Number"); r0.Cells[1].AddParagraph().AddBold("Media"); double maxImgWidth = colWidth - 10; int number = 1; foreach (var att in media) { var row = t.AddRow(); row.BottomPadding = 5; row.TopPadding = 5; //number var header = row.Cells[0].AddParagraph(); header.AddText(string.Format("{0}. {1}", number, att.Link)); number++; //thumb var pathName = Utils2.RandomFilePath(".png"); var bmpSrc = AttachmentManager.GetAttachmentBitmap3(att); AttachmentManager.SaveBitmapSource(AttachmentManager.GetAttachmentBitmap3(att), pathName); var para = row.Cells[1].AddImage(pathName); if (att.Format == (int)AttachmentFormat.Pdf) //pdf thumb is low resolution { para.Height = maxImgWidth; } else { para.Width = maxImgWidth; } para.RelativeHorizontal = RelativeHorizontal.Column; para.RelativeVertical = RelativeVertical.Paragraph; } }
public void PlaceRandomOnion() { float radius = 5f; Vector3 randPos = Utils2.FlattenVector(UnityEngine.Random.onUnitSphere) * radius + (Vector3.up * UnityEngine.Random.Range(-3, 3f)); randPos = Camera.main.transform.forward * 2; GameObject onion = (GameObject)Instantiate(onionPrefab, Camera.main.transform.position + randPos, Quaternion.identity); onionList.Add(onion); // DebugText.place }
public async void TestBootstrapFail() { var rnd = new Random(42); Peer master = null; Peer slave = null; try { master = new PeerBuilder(new Number160(rnd)) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(4001, 4001)) .SetPorts(4001) .Start(); slave = new PeerBuilder(new Number160(rnd)) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(4002, 4002)) .SetPorts(4002) .Start(); // bootstrap to another address/port var taskBootstrap = master.Bootstrap() .SetInetAddress(IPAddress.Loopback) .SetPorts(3000) .StartAsync(); try { await taskBootstrap; Assert.Fail("The bootstrapping task should fail."); } catch (Exception) { Assert.IsTrue(taskBootstrap.IsFaulted); } // bootstrap to correct address taskBootstrap = master.Bootstrap() .SetPeerAddress(slave.PeerAddress) .StartAsync(); await taskBootstrap; Assert.IsTrue(!taskBootstrap.IsFaulted); } finally { if (master != null) { master.ShutdownAsync().Wait(); } if (slave != null) { slave.ShutdownAsync().Wait(); } } }
public async void TestDirect1() { Peer sender = null; Peer recv1 = null; ChannelCreator cc = null; try { sender = new PeerBuilder(new Number160("0x50")) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(2525, 2525)) .SetP2PId(55) .SetPorts(2525) .Start(); recv1 = new PeerBuilder(new Number160("0x20")) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(9099, 9099)) .SetP2PId(55) .SetPorts(8088) .Start(); recv1.RawDataReply(new TestRawDataReply()); cc = await sender.ConnectionBean.Reservation.CreateAsync(0, 1); var sendDirectBuilder = new SendDirectBuilder(sender, (PeerAddress)null); sendDirectBuilder.SetIsStreaming(); sendDirectBuilder.SetIdleTcpSeconds(Int32.MaxValue); var buffer = CreateTestBuffer(); sendDirectBuilder.SetBuffer(buffer); var tr1 = sender.DirectDataRpc.SendAsync(recv1.PeerAddress, sendDirectBuilder, cc); await tr1; Assert.IsTrue(!tr1.IsFaulted); var ret = tr1.Result.Buffer(0); Assert.AreEqual(buffer, ret); } finally { if (sender != null) { sender.ShutdownAsync().Wait(); } if (recv1 != null) { recv1.ShutdownAsync().Wait(); } if (cc != null) { cc.ShutdownAsync().Wait(); } } }
public async void TestNeighborFail() { Peer sender = null; Peer recv1 = null; try { sender = new PeerBuilder(new Number160("0x50")) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(2424, 2424)) .SetP2PId(55) .SetPorts(2424) .Start(); recv1 = new PeerBuilder(new Number160("0x20")) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(8088, 8088)) .SetP2PId(55) .SetPorts(2424) .Start(); var neighbors1 = new NeighborRpc(sender.PeerBean, sender.ConnectionBean); var neighbors2 = new NeighborRpc(recv1.PeerBean, recv1.ConnectionBean); var cc = await recv1.ConnectionBean.Reservation.CreateAsync(1, 0); try { var sv = new SearchValues(new Number160("0x30"), null); var infConfig = Utils2.CreateInfiniteConfiguration(); await neighbors2.CloseNeighborsAsync(sender.PeerAddress, sv, Message.MessageType.Exception, cc, infConfig); Assert.Fail("ArgumentException should have been thrown."); } catch (ArgumentException) { cc.ShutdownAsync().Wait(); } } finally { if (sender != null) { sender.ShutdownAsync().Wait(); } if (recv1 != null) { recv1.ShutdownAsync().Wait(); } } }
public async void TestPingUdpPool() { Peer sender = null; Peer recv1 = null; ChannelCreator cc = null; try { sender = new PeerBuilder(new Number160("0x9876")) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetP2PId(55) .SetPorts(2424) .Start(); recv1 = new PeerBuilder(new Number160("0x1234")) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetP2PId(55) .SetPorts(8088) .Start(); var tasks = new List <Task <Message> >(50); cc = await recv1.ConnectionBean.Reservation.CreateAsync(tasks.Capacity, 0); for (int i = 0; i < tasks.Capacity; i++) { var taskResponse = sender.PingRpc.PingUdpAsync(recv1.PeerAddress, cc, new DefaultConnectionConfiguration()); tasks.Add(taskResponse); } foreach (var task in tasks) { await task; Assert.IsTrue(!task.IsFaulted); } } finally { if (cc != null) { cc.ShutdownAsync().Wait(); } if (sender != null) { sender.ShutdownAsync().Wait(); } if (recv1 != null) { recv1.ShutdownAsync().Wait(); } } }
public async void TestPingTimeoutUdp() { Peer sender = null; Peer recv1 = null; ChannelCreator cc = null; try { sender = new PeerBuilder(new Number160("0x9876")) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetP2PId(55) .SetPorts(2424) .Start(); recv1 = new PeerBuilder(new Number160("0x1234")) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetP2PId(55) .SetPorts(8088) .Start(); var handshake1 = new PingRpc(sender.PeerBean, sender.ConnectionBean, false, true, true); var handshake2 = new PingRpc(recv1.PeerBean, recv1.ConnectionBean, false, true, true); cc = await recv1.ConnectionBean.Reservation.CreateAsync(1, 0); var tr = handshake1.PingUdpAsync(recv1.PeerAddress, cc, new DefaultConnectionConfiguration()); try { await tr; Assert.Fail("Timeout should have let task fail."); } catch (Exception) { Assert.IsTrue(tr.IsFaulted); } } finally { if (cc != null) { cc.ShutdownAsync().Wait(); } if (sender != null) { sender.ShutdownAsync().Wait(); } if (recv1 != null) { recv1.ShutdownAsync().Wait(); } } }
private static Message CreateMessageKey() { var m = Utils2.CreateDummyMessage(); m.SetKey(_sample160_1); m.SetKey(_sample160_2); m.SetKey(_sample160_3); m.SetKey(_sample160_4); m.SetKey(_sample160_5); m.SetKey(_sample160_1); m.SetKey(_sample160_2); m.SetKey(_sample160_3); return(m); }
private MiniUserUC GetUser(Person owner) { var usr = new MiniUserUC(); if (owner == null) { owner = new Person(); owner.Name = "SYSTEM"; owner.Color = Utils2.ColorToInt(Colors.Aqua); } usr.DataContext = owner; return(usr); }
public static Message CreateMessageInteger() { var m = Utils2.CreateDummyMessage(); m.SetIntValue(Int32.MinValue); m.SetIntValue(-256); m.SetIntValue(-128); m.SetIntValue(-1); m.SetIntValue(0); m.SetIntValue(1); m.SetIntValue(128); m.SetIntValue(Int32.MaxValue); return(m); }
public async void TestNeighbor2() { Peer sender = null; Peer recv1 = null; try { sender = new PeerBuilder(new Number160("0x50")) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(2424, 2424)) .SetP2PId(55) .SetPorts(2424) .Start(); recv1 = new PeerBuilder(new Number160("0x20")) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(8088, 8088)) .SetP2PId(55) .SetPorts(2424) .Start(); var neighbors1 = new NeighborRpc(sender.PeerBean, sender.ConnectionBean); var neighbors2 = new NeighborRpc(recv1.PeerBean, recv1.ConnectionBean); var cc = await recv1.ConnectionBean.Reservation.CreateAsync(1, 0); var sv = new SearchValues(new Number160("0x30"), null); var infConfig = Utils2.CreateInfiniteConfiguration(); var tr = neighbors2.CloseNeighborsAsync(sender.PeerAddress, sv, Message.MessageType.Request2, cc, infConfig); await tr; Assert.IsTrue(!tr.IsFaulted); var addresses = tr.Result.NeighborsSet(0); // I see noone, not even myself. My peer was added in the overflow map. Assert.AreEqual(0, addresses.Size); await cc.ShutdownAsync(); } finally { if (sender != null) { sender.ShutdownAsync().Wait(); } if (recv1 != null) { recv1.ShutdownAsync().Wait(); } } }
private static Message CreateMessageLong() { var m = Utils2.CreateDummyMessage(); m.SetLongValue(Int64.MinValue); m.SetLongValue(-256); m.SetLongValue(-128); m.SetLongValue(-1); m.SetLongValue(0); m.SetLongValue(1); m.SetLongValue(128); m.SetLongValue(Int64.MaxValue); return(m); }
public async void TestPingTcp2() { Peer sender = null; Peer recv1 = null; ChannelCreator cc = null; try { sender = new PeerBuilder(new Number160("0x9876")) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(2424, 2424)) .SetP2PId(55) .SetPorts(2424) .Start(); recv1 = new PeerBuilder(new Number160("0x1234")) .SetMaintenanceTask(Utils2.CreateInfiniteIntervalMaintenanceTask()) .SetChannelServerConfiguration(Utils2.CreateInfiniteTimeoutChannelServerConfiguration(8088, 8088)) .SetP2PId(55) .SetPorts(8088) .Start(); // TODO check release in cc for first ping cc = await recv1.ConnectionBean.Reservation.CreateAsync(0, 1); var tr = sender.PingRpc.PingTcpAsync(recv1.PeerAddress, cc, new DefaultConnectionConfiguration()); await tr; var tr2 = recv1.PingRpc.PingTcpAsync(sender.PeerAddress, cc, new DefaultConnectionConfiguration()); await tr2; Assert.IsTrue(!tr.IsFaulted); Assert.IsTrue(!tr2.IsFaulted); } finally { if (cc != null) { cc.ShutdownAsync().Wait(); } if (sender != null) { sender.ShutdownAsync().Wait(); } if (recv1 != null) { recv1.ShutdownAsync().Wait(); } } }
public async void TestBootstrap() { var rnd = new Random(42); Peer master = null; try { // setup // TODO test with >100 peers // TODO test with timeout var peers = Utils2.CreateNodes(200, rnd, 4004); master = peers[0]; // do testing var list = new List <Task>(); for (int i = 0; i < peers.Length; i++) { if (peers[i] != master) { Console.WriteLine("Bootstrapping peer {0}.", i); var taskBootstrap = peers[i].Bootstrap().SetPeerAddress(master.PeerAddress).StartAsync(); list.Add(taskBootstrap); } } foreach (var bootstrapTask in list) { try { await bootstrapTask; } catch (Exception) { Console.Error.WriteLine(bootstrapTask.TryGetException()); } finally { Assert.IsTrue(!bootstrapTask.IsFaulted); } } } finally { if (master != null) { master.ShutdownAsync().Wait(); } } }
/// <summary> /// Slices tall image into a set of slices. Each slice has width equal to width of original and height not greater /// than height of 300 DPI A4 page /// </summary> /// <param name="pathName">path name to original</param> /// <returns>enumerable with pathnames to slice images</returns> public static IEnumerable <string> SliceImage(string pathName) { var sizeTemplate = new System.Drawing.Bitmap(pathName); var maxImgHeight = PdfTools2.PAGE_HEIGHT * sizeTemplate.Width / PdfTools2.PAGE_WIDTH; if (sizeTemplate.Height < maxImgHeight) { return new string[] { pathName } } ; var res = new List <string>(); var pagesRequired = (int)Math.Ceiling((double)sizeTemplate.Height / maxImgHeight); //height of original not yet sliced var heightRemains = sizeTemplate.Height; // index of pixel row in original image that will become top row of slice image var nextYToHandle = 0; for (int page = 0; page < pagesRequired; page++) { var slicePathName = Utils2.RandomFilePath(".png"); var sliceHeight = Math.Min(heightRemains, maxImgHeight); var sliceWidth = sizeTemplate.Width; using (var sliceImg = new Bitmap(sliceWidth, sliceHeight)) { using (Graphics graphics = Graphics.FromImage(sliceImg)) { graphics.DrawImage(sizeTemplate, new Rectangle(0, 0, sliceWidth, sliceHeight), //dst rect new Rectangle(0, nextYToHandle, sliceWidth, sliceHeight), //src rect GraphicsUnit.Pixel); } sliceImg.Save(slicePathName); } res.Add(slicePathName); heightRemains -= sliceHeight; nextYToHandle += sliceHeight; } sizeTemplate.Dispose(); return(res); } }
private static List <DirectedSegment3> BreakSegmentsBySegments(List <DirectedSegment3> segments) { var res = new List <DirectedSegment3>(); for (var i = 0; i < segments.Count; i++) { var target = segments[i]; var target2D = target.ToSegment2(EPlane.Xoy); if (target2D.Length.Near(0)) { continue; } var intersections = new List <double>(); for (var j = 1; j < segments.Count; j++) { var breaker = segments[(i + j) % segments.Count]; var breaker2D = breaker.ToSegment2(EPlane.Xoy); if (breaker2D.Length.Near(0)) { continue; } if (!Vector2.Cross(target2D.Direction, breaker2D.Direction).Near(0)) { var inter = Utils2.GetLineIntersection(target2D.P1, target2D.Direction, breaker2D.P1, breaker2D.Direction); if (target2D.Contains(inter)) { intersections.Add((inter - target2D.P1).Length / target2D.Length); } } //if (DirectedSegment2.IsSegmentsProperIntersection(target2D, breaker2D)) //{ // var inter = Utils2.GetLineIntersection(target2D.P1, target2D.Direction, breaker2D.P1, // breaker2D.Direction); // intersections.Add((inter - target2D.P1).Length/target2D.Length); //} } intersections.Add(1); intersections.Sort(); var prev = target.P1; foreach (var current in intersections.Select(f => target.P1 + target.Direction * f * target.Length)) { res.Add(new DirectedSegment3(prev, current)); prev = current; } } return(res); }
private static Message CreateMessageMapKey640Data() { // TODO create Data objects with BasedOn keys and other properties IDictionary <Number640, Data> sampleMap1 = new Dictionary <Number640, Data>(); sampleMap1.Add(_sample640_1, _sampleData1); sampleMap1.Add(_sample640_2, _sampleData1); sampleMap1.Add(_sample640_3, _sampleData1); IDictionary <Number640, Data> sampleMap2 = new Dictionary <Number640, Data>(); sampleMap2.Add(_sample640_1, _sampleData2); sampleMap2.Add(_sample640_2, _sampleData2); sampleMap2.Add(_sample640_3, _sampleData2); IDictionary <Number640, Data> sampleMap3 = new Dictionary <Number640, Data>(); sampleMap3.Add(_sample640_1, _sampleData3); sampleMap3.Add(_sample640_2, _sampleData3); sampleMap3.Add(_sample640_3, _sampleData3); IDictionary <Number640, Data> sampleMap4 = new Dictionary <Number640, Data>(); sampleMap4.Add(_sample640_1, _sampleData1); sampleMap4.Add(_sample640_2, _sampleData2); sampleMap4.Add(_sample640_3, _sampleData3); IDictionary <Number640, Data> sampleMap5 = new Dictionary <Number640, Data>(); sampleMap5.Add(_sample640_3, _sampleData1); sampleMap5.Add(_sample640_2, _sampleData2); sampleMap5.Add(_sample640_1, _sampleData3); var m = Utils2.CreateDummyMessage(); m.SetDataMap(new DataMap(sampleMap1)); m.SetDataMap(new DataMap(sampleMap2)); m.SetDataMap(new DataMap(sampleMap3)); m.SetDataMap(new DataMap(sampleMap4)); m.SetDataMap(new DataMap(sampleMap5)); m.SetDataMap(new DataMap(sampleMap1)); m.SetDataMap(new DataMap(sampleMap2)); m.SetDataMap(new DataMap(sampleMap3)); return(m); }
private static Message CreateMessageBloomFilter() { var sampleBf1 = new SimpleBloomFilter <Number160>(2, 5); sampleBf1.Add(_sample160_1); var sampleBf2 = new SimpleBloomFilter <Number160>(2, 5); sampleBf2.Add(_sample160_2); sampleBf2.Add(_sample160_1); var sampleBf3 = new SimpleBloomFilter <Number160>(2, 5); sampleBf3.Add(_sample160_1); sampleBf3.Add(_sample160_2); sampleBf3.Add(_sample160_3); var sampleBf4 = new SimpleBloomFilter <Number160>(2, 5); sampleBf4.Add(_sample160_1); sampleBf4.Add(_sample160_2); sampleBf4.Add(_sample160_3); sampleBf4.Add(_sample160_4); var sampleBf5 = new SimpleBloomFilter <Number160>(2, 5); sampleBf5.Add(_sample160_1); sampleBf5.Add(_sample160_2); sampleBf5.Add(_sample160_3); sampleBf5.Add(_sample160_4); sampleBf5.Add(_sample160_5); var m = Utils2.CreateDummyMessage(); m.SetBloomFilter(sampleBf1); m.SetBloomFilter(sampleBf2); m.SetBloomFilter(sampleBf3); m.SetBloomFilter(sampleBf4); m.SetBloomFilter(sampleBf5); m.SetBloomFilter(sampleBf1); m.SetBloomFilter(sampleBf2); m.SetBloomFilter(sampleBf3); return(m); }
private static Message CreateMessageMapKey640Byte() { IDictionary <Number640, sbyte> sampleMap1 = new Dictionary <Number640, sbyte>(); sampleMap1.Add(_sample640_1, _sampleBytes1[0]); sampleMap1.Add(_sample640_2, _sampleBytes1[1]); sampleMap1.Add(_sample640_3, _sampleBytes1[2]); IDictionary <Number640, sbyte> sampleMap2 = new Dictionary <Number640, sbyte>(); sampleMap2.Add(_sample640_1, _sampleBytes1[3]); sampleMap2.Add(_sample640_2, _sampleBytes1[4]); sampleMap2.Add(_sample640_3, _sampleBytes1[5]); IDictionary <Number640, sbyte> sampleMap3 = new Dictionary <Number640, sbyte>(); sampleMap3.Add(_sample640_1, _sampleBytes1[6]); sampleMap3.Add(_sample640_2, _sampleBytes1[7]); sampleMap3.Add(_sample640_3, _sampleBytes1[8]); IDictionary <Number640, sbyte> sampleMap4 = new Dictionary <Number640, sbyte>(); sampleMap4.Add(_sample640_1, _sampleBytes1[9]); sampleMap4.Add(_sample640_2, _sampleBytes1[10]); sampleMap4.Add(_sample640_3, _sampleBytes1[11]); IDictionary <Number640, sbyte> sampleMap5 = new Dictionary <Number640, sbyte>(); sampleMap5.Add(_sample640_1, _sampleBytes1[12]); sampleMap5.Add(_sample640_2, _sampleBytes1[13]); sampleMap5.Add(_sample640_3, _sampleBytes1[14]); var m = Utils2.CreateDummyMessage(); m.SetKeyMapByte(new KeyMapByte(sampleMap1)); m.SetKeyMapByte(new KeyMapByte(sampleMap2)); m.SetKeyMapByte(new KeyMapByte(sampleMap3)); m.SetKeyMapByte(new KeyMapByte(sampleMap4)); m.SetKeyMapByte(new KeyMapByte(sampleMap5)); m.SetKeyMapByte(new KeyMapByte(sampleMap1)); m.SetKeyMapByte(new KeyMapByte(sampleMap2)); m.SetKeyMapByte(new KeyMapByte(sampleMap3)); return(m); }
/// <summary> /// Decodes a message from the provided byte array. /// </summary> /// <param name="bytes">The message bytes from Java encoding.</param> /// <returns>The .NET message version.</returns> public static Message DecodeMessage(byte[] bytes) { var decoder = new Decoder(null); // mock a non-working ChannelHandlerContext var pipeline = new Pipeline(); var channel = new MyTcpClient(new IPEndPoint(IPAddress.Any, 0), pipeline); var session = new PipelineSession(channel, pipeline, new List <IInboundHandler>(), new List <IOutboundHandler>()); var ctx = new ChannelHandlerContext(channel, session); // create dummy sender for decoding var message = Utils2.CreateDummyMessage(); AlternativeCompositeByteBuf buf = AlternativeCompositeByteBuf.CompBuffer(); buf.WriteBytes(bytes.ToSByteArray()); decoder.Decode(ctx, buf, message.Recipient.CreateSocketTcp(), message.Sender.CreateSocketTcp()); return(decoder.Message); }
private static Message CreateMessageSetPeerSocket() { IPAddress sampleAddress1 = IPAddress.Parse("192.168.1.1"); IPAddress sampleAddress2 = IPAddress.Parse("255.255.255.255"); IPAddress sampleAddress3 = IPAddress.Parse("127.0.0.1"); IPAddress sampleAddress4 = IPAddress.Parse("0:1:2:3:4:5:6:7"); IPAddress sampleAddress5 = IPAddress.Parse("7:6:5:4:3:2:1:0"); var samplePsa1 = new PeerSocketAddress(sampleAddress1, 0, 0); var samplePsa2 = new PeerSocketAddress(sampleAddress2, 65535, 65535); var samplePsa3 = new PeerSocketAddress(sampleAddress3, 1, 1); var samplePsa4 = new PeerSocketAddress(sampleAddress4, 2, 2); var samplePsa5 = new PeerSocketAddress(sampleAddress5, 30, 40); var samplePsa6 = new PeerSocketAddress(sampleAddress1, 88, 88); var samplePsa7 = new PeerSocketAddress(sampleAddress2, 177, 177); var samplePsa8 = new PeerSocketAddress(sampleAddress3, 60000, 65000); var samplePsa9 = new PeerSocketAddress(sampleAddress4, 99, 100); var samplePsa10 = new PeerSocketAddress(sampleAddress5, 13, 1234); ICollection <PeerSocketAddress> sampleAddresses = new List <PeerSocketAddress>(); sampleAddresses.Add(samplePsa1); sampleAddresses.Add(samplePsa2); sampleAddresses.Add(samplePsa3); sampleAddresses.Add(samplePsa4); sampleAddresses.Add(samplePsa5); sampleAddresses.Add(samplePsa6); sampleAddresses.Add(samplePsa7); sampleAddresses.Add(samplePsa8); sampleAddresses.Add(samplePsa9); sampleAddresses.Add(samplePsa10); // only 1 content is set, because per content, whole list is encoded var m = Utils2.CreateDummyMessage(); m.SetPeerSocketAddresses(sampleAddresses); return(m); }
private static Message CreateMessageByteBuffer() { // write some random bytes var buf = AlternativeCompositeByteBuf.CompBuffer(); for (int i = 0; i < 300; i++) { switch (i % 3) { case 0: buf.WriteBytes(_sampleBytes1); break; case 1: buf.WriteBytes(_sampleBytes2); break; case 2: buf.WriteBytes(_sampleBytes3); break; } } // decompose buffer and use the resulting 8 ByteBufs in the list var decoms = buf.Decompose(0, buf.ReadableBytes); var m = Utils2.CreateDummyMessage(); m.SetBuffer(new Buffer(decoms[0])); m.SetBuffer(new Buffer(decoms[1])); m.SetBuffer(new Buffer(decoms[2])); m.SetBuffer(new Buffer(decoms[3])); m.SetBuffer(new Buffer(decoms[4])); m.SetBuffer(new Buffer(decoms[5])); m.SetBuffer(new Buffer(decoms[6])); m.SetBuffer(new Buffer(decoms[7])); return(m); }
private static Message CreateMessageSetTrackerData() { var sampleAddress1 = new PeerAddress(_sample160_1, IPAddress.Parse("192.168.1.1")); var sampleAddress2 = new PeerAddress(_sample160_2, IPAddress.Parse("255.255.255.255")); var sampleAddress3 = new PeerAddress(_sample160_3, IPAddress.Parse("127.0.0.1")); var sampleAddress4 = new PeerAddress(_sample160_4, IPAddress.Parse("0:1:2:3:4:5:6:7")); var sampleAddress5 = new PeerAddress(_sample160_5, IPAddress.Parse("7:6:5:4:3:2:1:0")); IDictionary <PeerAddress, Data> sampleMap1 = new Dictionary <PeerAddress, Data>(); sampleMap1.Add(sampleAddress1, _sampleData1); sampleMap1.Add(sampleAddress2, _sampleData2); sampleMap1.Add(sampleAddress3, _sampleData3); IDictionary <PeerAddress, Data> sampleMap2 = new Dictionary <PeerAddress, Data>(); sampleMap2.Add(sampleAddress2, _sampleData1); sampleMap2.Add(sampleAddress3, _sampleData2); sampleMap2.Add(sampleAddress4, _sampleData3); IDictionary <PeerAddress, Data> sampleMap3 = new Dictionary <PeerAddress, Data>(); sampleMap3.Add(sampleAddress3, _sampleData1); sampleMap3.Add(sampleAddress4, _sampleData2); sampleMap3.Add(sampleAddress5, _sampleData3); var m = Utils2.CreateDummyMessage(); m.SetTrackerData(new TrackerData(sampleMap1, true)); m.SetTrackerData(new TrackerData(sampleMap1, false)); m.SetTrackerData(new TrackerData(sampleMap2, true)); m.SetTrackerData(new TrackerData(sampleMap2, false)); m.SetTrackerData(new TrackerData(sampleMap3, true)); m.SetTrackerData(new TrackerData(sampleMap3, false)); m.SetTrackerData(new TrackerData(sampleMap1, true)); m.SetTrackerData(new TrackerData(sampleMap1, false)); return(m); }