public void TestMedian()
        {
            var generator = new GeneratorTestAscan();
            var processor = new RawDataProcessor();
            processor.Scenario.Add(new ProcessingMedian());

            var median = processor.Process(generator.GetAscans1());

            Assert.That(median[0], Is.EqualTo(2));
        }
        public void TestAverage()
        {
            var generator = new GeneratorTestAscan();
            var processor = new RawDataProcessor();
            processor.Scenario.Add(new ProcessingAverage());

            var avg = processor.Process(generator.GetAscans1());

            Assert.That(avg[1], Is.EqualTo(5));
        }
Exemple #3
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            MainForm         mainform        = new MainForm();
            RawDataProcessor rawProcessor    = new RawDataProcessor();
            ReportCreator    reportCreator   = new ReportCreator();
            DocumentCreator  documentCreator = new DocumentCreator();

            Presenter presenter = new Presenter(rawProcessor, reportCreator,
                                                documentCreator, mainform);

            Application.Run(mainform);
        }
        public int LoadItems(OracleConnection conn, FilterConfig filters)
        {
            _conn = conn;

            using (var itemLoad = new OracleCommand())
            {
                itemLoad.Connection = conn;
                StringBuilder sb = new StringBuilder();

                /* Base query */

                /* This SQL is taken from http://jjmpsj.blogspot.com/2012/10/query-for-component-andor-cref.html (and slightly adjusted) */
                sb.Append("WITH PORTAL_REGISTRY (PORTAL_NAME, PORTAL_REFTYPE, PORTAL_OBJNAME, PORTAL_LABEL, PORTAL_URI_SEG1, PORTAL_URI_SEG2, PORTAL_URI_SEG3, LASTUPDOPRID, PATH) AS (SELECT P.PORTAL_NAME , P.PORTAL_REFTYPE , P.PORTAL_OBJNAME , P.PORTAL_LABEL , PORTAL_URI_SEG1 , PORTAL_URI_SEG2 , PORTAL_URI_SEG3 , LASTUPDOPRID, P.PORTAL_LABEL AS PATH FROM PSPRSMDEFN P WHERE P.PORTAL_PRNTOBJNAME = ' ' UNION ALL SELECT P_ONE.PORTAL_NAME , P_ONE.PORTAL_REFTYPE , P_ONE.PORTAL_OBJNAME , P_ONE.PORTAL_LABEL , P_ONE.PORTAL_URI_SEG1 , P_ONE.PORTAL_URI_SEG2 , P_ONE.PORTAL_URI_SEG3 , P_ONE.LASTUPDOPRID, PATH || ' -> ' || P_ONE.PORTAL_OBJNAME AS PATH FROM PORTAL_REGISTRY P INNER JOIN PSPRSMDEFN P_ONE ON P.PORTAL_NAME = P_ONE.PORTAL_NAME AND P.PORTAL_REFTYPE = 'F' AND P.PORTAL_OBJNAME = P_ONE.PORTAL_PRNTOBJNAME WHERE P_ONE.PORTAL_PRNTOBJNAME != ' ') SELECT PORTAL_NAME , PORTAL_OBJNAME , PATH, LASTUPDOPRID FROM PORTAL_REGISTRY WHERE PORTAL_REFTYPE != 'F' ");

                if (filters.Prefixes.Count > 0)
                {
                    sb.Append(" AND (");

                    for (var x = 0; x < filters.Prefixes.Count; x++)
                    {
                        sb.Append("PORTAL_OBJNAME like '");
                        sb.Append(filters.Prefixes[x]);
                        sb.Append("%'");
                        if (x < filters.Prefixes.Count - 1)
                        {
                            sb.Append(" OR ");
                        }
                    }

                    sb.Append(")");
                }

                itemLoad.CommandText = sb.ToString();
                using (var reader = itemLoad.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var newCref = new ContentReference()
                        {
                            Portal = reader.GetString(0), ID = reader.GetString(1), Path = reader.GetString(2), LastUpdOprid = reader.GetString(3)
                        };

                        /* Todo: fetch CREF data as JSON */

                        using (OracleCommand crefDataSql = new OracleCommand($"SELECT * FROM PSPRSMDEFN WHERE PORTAL_OBJNAME = :1 and PORTAL_NAME = :2", _conn))
                        {
                            OracleParameter crefID = new OracleParameter();
                            crefID.OracleDbType = OracleDbType.Varchar2;
                            crefID.Value        = newCref.ID;
                            crefDataSql.Parameters.Add(crefID);

                            OracleParameter portalName = new OracleParameter();
                            portalName.OracleDbType = OracleDbType.Varchar2;
                            portalName.Value        = newCref.Portal;
                            crefDataSql.Parameters.Add(portalName);

                            using (var dataReader = crefDataSql.ExecuteReader())
                            {
                                var dataTable = dataReader.GetSchemaTable();
                                while (dataReader.Read())
                                {
                                    newCref.Data = RawDataProcessor.DataItemFromReader(dataTable, dataReader);

                                    /* read in CREF attributes */
                                    /* PSPRSMATTRVAL */
                                    RawDataRelatedTable attrs = new RawDataRelatedTable();
                                    attrs.TableName = "PSPRSMATTRVAL";
                                    newCref.Data.RelatedTables.Add(attrs);

                                    using (OracleCommand crefAttrSQL = new OracleCommand($"SELECT * FROM PSPRSMATTRVAL WHERE PORTAL_OBJNAME = :1 and PORTAL_NAME = :2", _conn))
                                    {
                                        crefID = new OracleParameter();
                                        crefID.OracleDbType = OracleDbType.Varchar2;
                                        crefID.Value        = newCref.ID;
                                        crefAttrSQL.Parameters.Add(crefID);

                                        portalName = new OracleParameter();
                                        portalName.OracleDbType = OracleDbType.Varchar2;
                                        portalName.Value        = newCref.Portal;
                                        crefAttrSQL.Parameters.Add(portalName);


                                        using (var attrReader = crefAttrSQL.ExecuteReader())
                                        {
                                            var attrDataTable = attrReader.GetSchemaTable();
                                            while (attrReader.Read())
                                            {
                                                attrs.Rows.Add(RawDataProcessor.DataItemFromReader(attrDataTable, attrReader));
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        SelectedCREFs.Add(newCref);
                    }
                }
            }
            return(SelectedCREFs.Count);
        }
Exemple #5
0
        private void prepareInOut(MausrDb db)
        {
            var ic       = new NetInputConvertor();
            var dbInputs = db.SymbolDrawings.Where(x => x.Approved == true).ToList();

            var baseInputsAndDrawings = dbInputs
                                        .Select(sd => new { SymbolId = sd.Symbol.SymbolId, RawDrawing = sd.GetRawDrawing() })
                                        .ToList();

            var inputsAndDrawings = baseInputsAndDrawings.ToList();
            var dataProc          = new RawDataProcessor();

            if (trainSettings.GenerateExtraInputsByRotation != 0)
            {
                inputsAndDrawings.AddRange(baseInputsAndDrawings
                                           .Select(x => new {
                    SymbolId   = x.SymbolId,
                    RawDrawing = dataProc.Rotate(x.RawDrawing, trainSettings.GenerateExtraInputsByRotation)
                }));
                inputsAndDrawings.AddRange(baseInputsAndDrawings
                                           .Select(x => new {
                    SymbolId   = x.SymbolId,
                    RawDrawing = dataProc.Rotate(x.RawDrawing, -trainSettings.GenerateExtraInputsByRotation)
                }));
            }

            if (trainSettings.NormalizeInput)
            {
                foreach (var iad in inputsAndDrawings)
                {
                    dataProc.NormalizeInPlace(iad.RawDrawing);
                }
            }

            ic.Shuffle(inputsAndDrawings);

            var rasterizer = new Rasterizer()
            {
                ImageSize   = trainSettings.InputImgSizePx,
                DrawPoints  = false,
                ExtraMargin = true,
                PenSizePerc = trainSettings.PenThicknessPerc / 100f
            };

            int testSamplesCount = 1 + (trainSettings.TestDataSetSizePerc * inputsAndDrawings.Count / 100);
            {
                var testSet      = inputsAndDrawings.Take(testSamplesCount).ToList();
                var testDrawings = testSet.Select(x => x.RawDrawing).ToList();

                testInputs           = ic.CreateInputsMatrix(testDrawings, rasterizer, false);
                testOutIds           = testSet.Select(x => x.SymbolId).ToArray();
                testOutNeuronIndices = ic.CreateOutIndicesFromIds(testOutIds, network);
            }
            {
                var trainSet      = inputsAndDrawings.Skip(testSamplesCount).ToList();
                var trainDrawings = trainSet.Select(x => x.RawDrawing).ToList();

                trainInputs           = ic.CreateInputsMatrix(trainDrawings, rasterizer, false);
                trainOutIds           = trainSet.Select(x => x.SymbolId).ToArray();
                trainOutNeuronIndices = ic.CreateOutIndicesFromIds(trainOutIds, network);
            }
        }