Esempio n. 1
0
        protected void OnDisconnect(Exception Exception)
        {
            CallEventHandler(SocketIOEvent.DISCONNECT, new SocketIOException("Socket closed.", Exception).ToString());

            AckManager.Dispose();
            Reconstructor.Dispose();
        }
Esempio n. 2
0
        public static void RunExperiment(string name, string folder, string prefix, string outputDirectory = "")
        {
            if (outputDirectory == String.Empty)
            {
                outputDirectory = Path.Combine(Drive.GetDriveRoot(), BenchmarkDirectory);
                //Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            }

            var drive      = new Drive(folder, Drive.Reason.Read);
            var experiment = new Experiment(drive.Files(prefix).ToList(), UseOcr);
            var mixed      = experiment.MixedOrder;
            var normal     = experiment.CorrectOrder;
            var results    = Reconstructor.NaiveKruskalAlgorithm(mixed);
            var difference = experiment.Diff(results);

            var resultImg = Path.Combine(outputDirectory, name + "_result.png");

            Stitcher.ExportImage((Cluster)results.First().Root(), resultImg);

            var sb = new StringBuilder();

            sb.AppendLine(name);
            sb.AppendLine(folder);
            sb.AppendLine(difference.ToString());
            mixed.ForEach(shred => sb.Append(" " + shred.Id + ", "));
            sb.AppendLine();
            normal.ForEach(shred => sb.Append(" " + shred.Id + ", "));
            sb.AppendLine();
            results.ForEach(shred => sb.Append(" " + shred.Id + ", "));
            sb.AppendLine();

            Console.WriteLine(sb.ToString());
            File.WriteAllText(Path.Combine(outputDirectory, name + ".txt"), sb.ToString());
        }
Esempio n. 3
0
        public void NaiveKruskalArtificial()
        {
            Shred.BUFFER      = 0;
            Shred.SAMPLE_SIZE = 4;

            var path    = Path.Combine(Drive.GetDriveRoot(), Dir.ArtificialTestDirectory, Dir.NaiveKruskalHttpDocument);
            var shreds  = Shred.Factory("image", path, false);
            var results = Reconstructor.NaiveKruskalAlgorithm(shreds);

            var checker = Helpers.BuildChecker(Path.Combine(path, Helpers.CheckFile));

            shreds.ForEach(shred => Console.Write(" " + shred.Id + ", "));
            Console.WriteLine();
            results.ForEach(shred => Console.Write(" " + shred.Id + ", "));
            Console.WriteLine();

            var indicies = results.Select((t, pos) => new Tuple <int, Shred>(pos, t)).ToList();
            var result   = indicies.Select(pair =>
            {
                var filename = Path.GetFileName(pair.Item2.Filepath);
                Assert.IsNotNull(filename);
                Assert.IsNotNull(checker[filename]);
                var expected = checker[filename];
                var actual   = pair.Item1;
                Console.WriteLine("Actual " + actual + " vs. " + expected + " | File: " + filename);
                return(actual.ToString(CultureInfo.InvariantCulture) == expected);
            }).ToList();

//            var diff = Differ.DiffShredByOrder(results.Select(shred => shred.Id).ToList(),
//Enumerable.Range(0, results.Count).Select(ii => (long)ii).ToList());
//            Console.WriteLine("Difference : " + diff);
            ExportResult((Cluster)shreds.First().Root(), "../../visualizer/NaiveKruskalArtifical.png");
        }
Esempio n. 4
0
        private void OnEtc(SocketIOPacket Packet)
        {
            if (Packet != null)
            {
                if (Reconstructor.ConstructeeTokenCount > 0)
                {
                    SocketIOPacket ReconstructedPacket = Reconstructor.Reconstruct(Packet.RawData);

                    if (Reconstructor.ConstructeeTokenCount == 0)
                    {
                        using (Reconstructor)
                        {
                            if (ReconstructedPacket.ID >= 0)
                            {
                                OnAck(ReconstructedPacket);
                            }
                            else
                            {
                                OnEvent(ReconstructedPacket);
                            }
                        }
                    }
                }
            }
        }
        /// <summary>
        /// Unity start.
        /// </summary>

        public void Start()
        {
            m_AllVoxels     = new GameObject("AllVoxels");
            m_Reconstructor = new Reconstructor();
            m_Reconstructor.Start();
            m_Reconstructor.GetSpatialHashing().SetSubVoxelPrefab(m_SubVoxelPrefab);
            m_Mesh = GetComponent <MeshFilter>().mesh;
            m_Mesh.Clear();
            m_Confidences = new float[k_MaxPointCount];
        }
Esempio n. 6
0
        public static void Reconstruct(string prefix, string dir, bool display)
        {
            Console.WriteLine("Loading Shreds");
            var shreds = Shred.Factory(prefix, dir, false);

            Console.WriteLine("Comparing And Clusering");
            var results = Reconstructor.NaiveKruskalAlgorithm(shreds);

            Console.WriteLine("Exporting Results");
            NaiveKruskalTests.ExportResult((Cluster)results.First().Root(), Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "output.png"),
                                           Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "json.js"));
        }
        public async Task <ActionResult <ApiText> > PostApiText([FromBody] ApiText apiText)
        {
            if (apiText.Text.Length > 10000)
            {
                apiText.Text = apiText.Text.Substring(0, 10000);
            }

            var reconstructor = new Reconstructor(Startup.BinaryFilePath, Startup.PositionTriePath);

            apiText.Text = reconstructor.Reconstruct(apiText.Text);

            return(CreatedAtAction(null, apiText));
        }
Esempio n. 8
0
        public IActionResult Index(DiacriticsText model)
        {
            if (model.OriginalText.Length > 10000)
            {
                model.OriginalText = model.OriginalText.Substring(0, 10000);
            }

            var reconstructor = new Reconstructor(Startup.BinaryFilePath, Startup.PositionTriePath);

            model.ReconstructedText = reconstructor.Reconstruct(model.OriginalText);

            return(View(model));
        }
Esempio n. 9
0
        public void NaiveKruskalAuthentic()
        {
            var path = Path.Combine(Drive.GetDriveRoot(), Dir.PdfRequiremnetTestDirectory,
                                    Dir.PdfRequiremnetTestFullOne);
            var shreds  = Shred.Factory("image", path, false);
            var results = Reconstructor.NaiveKruskalAlgorithm(shreds);

            shreds.ForEach(shred => Console.Write(" " + shred.Id + ", "));
            Console.WriteLine();
            results.ForEach(shred => Console.Write(" " + shred.Id + ", "));
            Console.WriteLine();
            var diff = Differ.DiffShredByOrder(results.Select(shred => shred.Id).ToList(), Enumerable.Range(0, results.Count).Select(ii => (long)ii).ToList());

            Console.WriteLine("Difference : " + diff);
            ExportResult((Cluster)results.First().Root(), "../../visualizer/NaiveKruskalAuthentic.png");
        }
Esempio n. 10
0
        public void TestQueue()
        {
            var max  = 1.00;
            var path = Path.Combine(Drive.GetDriveRoot(), Dir.PdfRequiremnetTestDirectory,
                                    Dir.PdfRequiremnetTestFullOne);
            var shreds = Shred.Factory("image", path, false);
            var queue  = Reconstructor.BuildQueue(shreds);

            while (queue.Count > 0)
            {
                var next = queue.Dequeue().ChamferSimilarity;
                Assert.IsTrue(next <= max);
                Console.WriteLine(next);
                max = next;
            }
        }
Esempio n. 11
0
 private void OnBinaryPacket(SocketIOPacket Packet)
 {
     if (Packet != null && Reconstructor.ConstructeeTokenCount == 0)
     {
         Reconstructor.SetPacket(Packet);
     }
     else
     {
         throw new SocketIOException(string.Format
                                     (
                                         "Unexpected binary data: {0}. Reconstructor: {1}.",
                                         Packet,
                                         Reconstructor.OriginalPacket
                                     ));
     }
 }
Esempio n. 12
0
        public string Reconstruct(string prefix, string dir, bool display)
        {
            StringBuilder sb = new StringBuilder();

            WriteToLog("Loading Shreds");
            var shreds = Shred.Factory(prefix, dir, false);

            WriteToLog("Comparing And Clusering");
            var results = Reconstructor.NaiveKruskalAlgorithm(shreds);

            WriteToLog("Exporting Results");
            string currentDir = Directory.GetCurrentDirectory();

            NaiveKruskalTests.ExportResult((Cluster)results.First().Root(), Path.Combine(currentDir, "output.png"),
                                           Path.Combine(currentDir, "json.js"));
            WriteToLog("Export Complete");
            return(sb.ToString());
        }
Esempio n. 13
0
        public void NaiveKruskalPrimitive()
        {
            Shred.BUFFER      = 0;
            Shred.SAMPLE_SIZE = 1;

            var folder = Path.Combine(Drive.GetDriveRoot(), Dir.NaiveKruskalTestDirectory);
            var paths  = new List <string>();

            paths.Add(Path.Combine(folder, NaiveThree));
            paths.Add(Path.Combine(folder, NaiveSix));
            paths.Add(Path.Combine(folder, NaiveTen));

            foreach (var path in paths)
            {
                var shreds  = Shred.Factory("Shred", path, false);
                var checker = Helpers.BuildChecker(Path.Combine(path, Helpers.CheckFile));

                var results = Reconstructor.NaiveKruskalAlgorithm(shreds);

                var indicies = results.Select((t, pos) => new Tuple <int, Shred>(pos, t)).ToList();

                Console.WriteLine(" ---- " + path + "----");
                var result = indicies.Select(pair =>
                {
                    var filename = Path.GetFileName(pair.Item2.Filepath);
                    Assert.IsNotNull(filename);
                    Assert.IsNotNull(checker[filename]);
                    var expected = checker[filename];
                    var actual   = pair.Item1;
                    Console.WriteLine("Actual " + actual + " vs. " + expected + " | File: " + filename);
                    return(actual.ToString(CultureInfo.InvariantCulture) == expected);
                }).ToList();
                Exporter.ExportJson(results.First().Root());
                Console.WriteLine();
                result.ForEach(Assert.IsTrue);
            }
        }