Ejemplo n.º 1
0
        public void RowGetTest()
        {
            Row row = new RowImpl(new object[] { 1, "1234", "John" }, RowHelper.BasicSchema);
            Assert.AreEqual(row.Get(0), 1);
            Assert.AreEqual(row.Get(1), "1234");
            Assert.AreEqual(row.Get(2), "John");
            Assert.Throws(typeof(Exception), () => { row.Get(3); });

            Assert.AreEqual(row.Get("age"), 1);
            Assert.AreEqual(row.Get("id"), "1234");
            Assert.AreEqual(row.Get("name"), "John");
            Assert.Throws(typeof(Exception), () => { row.Get("address"); });

            Assert.AreEqual(row.Size(), 3);

            Assert.AreEqual(row.GetAs<long>(0), 1);
            Assert.AreEqual(row.GetAs<string>(1), "1234");
            Assert.AreEqual(row.GetAs<string>(2), "John");
            Assert.Throws(typeof(RuntimeBinderException), () => { row.GetAs<int>(1); });

            Assert.AreEqual(row.GetAs<long>("age"), 1);
            Assert.AreEqual(row.GetAs<string>("id"), "1234");
            Assert.AreEqual(row.GetAs<string>("name"), "John");
            Assert.Throws(typeof(RuntimeBinderException), () => { row.GetAs<int>("id"); });
        }
Ejemplo n.º 2
0
        public void RowGetTest()
        {
            Row row = new RowImpl(new object[] { 1, "1234", "John" }, basicSchema);

            Assert.AreEqual(row.Get(0), 1);
            Assert.AreEqual(row.Get(1), "1234");
            Assert.AreEqual(row.Get(2), "John");
            Assert.Throws(typeof(Exception), new TestDelegate(() => { row.Get(3); }));

            Assert.AreEqual(row.Get("age"), 1);
            Assert.AreEqual(row.Get("id"), "1234");
            Assert.AreEqual(row.Get("name"), "John");
            Assert.Throws(typeof(Exception), new TestDelegate(() => { row.Get("address"); }));

            Assert.AreEqual(row.Size(), 3);

            Assert.AreEqual(row.GetAs <long>(0), 1);
            Assert.AreEqual(row.GetAs <string>(1), "1234");
            Assert.AreEqual(row.GetAs <string>(2), "John");
            Assert.Throws(typeof(RuntimeBinderException), new TestDelegate(() => { row.GetAs <int>(1); }));

            Assert.AreEqual(row.GetAs <long>("age"), 1);
            Assert.AreEqual(row.GetAs <string>("id"), "1234");
            Assert.AreEqual(row.GetAs <string>("name"), "John");
            Assert.Throws(typeof(RuntimeBinderException), new TestDelegate(() => { row.GetAs <int>("id"); }));
        }
Ejemplo n.º 3
0
        public void RowToStringTest()
        {
            Row row1 = new RowImpl(new object[] { 1, "1234", "John" }, RowHelper.BasicSchema);
            string result1 = row1.ToString();
            Assert.AreEqual(result1, "[1,1234,John]");

            Row row2 = new RowImpl(new object[] { 1, "1234", null }, RowHelper.BasicSchema);
            string result2 = row2.ToString();
            Assert.AreEqual(result2, "[1,1234,]");
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Used to construct a Row
        /// </summary>
        /// <returns></returns>
        public Row GetRow()
        {
            var schema = DataType.ParseDataTypeFromJson(Schema) as StructType;
            var row = new RowImpl(GetValues(Values), schema);

            //Resetting schema here so that rows from multiple DataFrames can be processed in the same AppDomain
            //next row will have schema - so resetting is fine
            isCurrentSchemaSet = false;
            currentSchema = null;
            return row;
        }
Ejemplo n.º 5
0
        public void RowToStringTest()
        {
            Row    row1    = new RowImpl(new object[] { 1, "1234", "John" }, basicSchema);
            string result1 = row1.ToString();

            Assert.AreEqual(result1, "[1,1234,John]");

            Row    row2    = new RowImpl(new object[] { 1, "1234", null }, basicSchema);
            string result2 = row2.ToString();

            Assert.AreEqual(result2, "[1,1234,]");
        }
Ejemplo n.º 6
0
        public void RowConstructTest()
        {
            Row row1 = new RowImpl(new object[]{1, "id", "name"}, RowHelper.BasicSchema);
            Row row2 = new RowImpl(new List<object> {1, "id", "name"}, RowHelper.BasicSchema);
            
            // dynamic data tyoe is not array or list
            Assert.Throws(typeof(Exception), () => { new RowImpl(new object(), RowHelper.BasicSchema); });

            // dynamic data count is not same with its schema
            Assert.Throws(typeof(Exception), () => { new RowImpl(new List<object> { "id", "name" }, RowHelper.BasicSchema); });

            // complex scheme
            Row row3 = new RowImpl(new object[]{ new object[]{"redmond", "washington"}, 1, "id", "name", new object[]{ "Tel3", "Tel4" } }, RowHelper.ComplexSchema);
        }
Ejemplo n.º 7
0
        public void RowConstructTest()
        {
            Row row1 = new RowImpl(new object[] { 1, "id", "name" }, RowHelper.BasicSchema);
            Row row2 = new RowImpl(new List <object> {
                1, "id", "name"
            }, RowHelper.BasicSchema);

            // dynamic data tyoe is not array or list
            Assert.Throws(typeof(Exception), () => { new RowImpl(new object(), RowHelper.BasicSchema); });

            // dynamic data count is not same with its schema
            Assert.Throws(typeof(Exception), () => { new RowImpl(new List <object> {
                    "id", "name"
                }, RowHelper.BasicSchema); });

            // complex scheme
            Row row3 = new RowImpl(new object[] { new object[] { "redmond", "washington" }, 1, "id", "name", new object[] { "Tel3", "Tel4" } }, RowHelper.ComplexSchema);
        }
Ejemplo n.º 8
0
        public void RowConstructTest()
        {
            Row row1 = new RowImpl(new object[] { 1, "id", "name" }, basicSchema);
            Row row2 = new RowImpl(new List <object>()
            {
                1, "id", "name"
            }, basicSchema);

            // dynamic data tyoe is not array or list
            Assert.Throws(typeof(Exception), new TestDelegate(() => { new RowImpl(new object(), basicSchema); }));

            // dynamic data count is not same with its schema
            Assert.Throws(typeof(Exception), new TestDelegate(() => { new RowImpl(new List <object>()
                {
                    "id", "name"
                }, basicSchema); }));

            // complex scheme
            Row row3 = new RowImpl(new object[] { new object[] { "redmond", "washington" }, 1, "id", "name" }, complexSchema);
        }
Ejemplo n.º 9
0
        private void InitMap <T>(T val, DataViewType type, int numberOfBits = 20, ValueGetter <T> getter = null)
        {
            if (getter == null)
            {
                getter = (ref T dst) => dst = val;
            }
            _inRow = RowImpl.Create(type, getter);
            // One million features is a nice, typical number.
            var info   = new HashingEstimator.ColumnOptions("Bar", "Foo", numberOfBits: numberOfBits);
            var xf     = new HashingTransformer(_env, new[] { info });
            var mapper = ((ITransformer)xf).GetRowToRowMapper(_inRow.Schema);
            var column = mapper.OutputSchema["Bar"];
            var outRow = mapper.GetRow(_inRow, column);

            if (type is VectorType)
            {
                _vecGetter = outRow.GetGetter <VBuffer <uint> >(column);
            }
            else
            {
                _getter = outRow.GetGetter <uint>(column);
            }
        }
Ejemplo n.º 10
0
        private void InitMapMurmurHashV1 <T>(T val, DataViewType type, ValueGetter <T> getter = null)
        {
            if (getter == null)
            {
                getter = (ref T dst) => dst = val;
            }
            _inRow = RowImpl.Create(type, getter);

            var modelPath = GetBenchmarkDataPathAndEnsureData("backcompat/MurmurHashV1.zip");
            var estimator = _env.Model.Load(modelPath, out var schema);
            var mapper    = ((ITransformer)estimator).GetRowToRowMapper(_inRow.Schema);
            var column    = mapper.OutputSchema["Bar"];
            var outRow    = mapper.GetRow(_inRow, column);

            if (type is VectorDataViewType)
            {
                _vecGetter = outRow.GetGetter <VBuffer <uint> >(column);
            }
            else
            {
                _getter = outRow.GetGetter <uint>(column);
            }
        }
Ejemplo n.º 11
0
        private void InitMap <T>(T val, ColumnType type, int hashBits = 20, ValueGetter <T> getter = null)
        {
            if (getter == null)
            {
                getter = (ref T dst) => dst = val;
            }
            _inRow = RowImpl.Create(type, getter);
            // One million features is a nice, typical number.
            var info   = new HashingTransformer.ColumnInfo("Foo", "Bar", hashBits: hashBits);
            var xf     = new HashingTransformer(_env, new[] { info });
            var mapper = xf.GetRowToRowMapper(_inRow.Schema);
            var column = mapper.OutputSchema["Bar"];
            var outRow = mapper.GetRow(_inRow, c => c == column.Index);

            if (type is VectorType)
            {
                _vecGetter = outRow.GetGetter <VBuffer <uint> >(column.Index);
            }
            else
            {
                _getter = outRow.GetGetter <uint>(column.Index);
            }
        }
Ejemplo n.º 12
0
        private void InitMap <T>(T val, DataViewType type, int numberOfBits = 20, ValueGetter <T> getter = null)
        {
            if (getter == null)
            {
                getter = (ref T dst) => dst = val;
            }
            _inRow = RowImpl.Create(type, getter);
            // One million features is a nice, typical number.
            var info   = _env.Transforms.Conversion.Hash("Bar", "Foo", numberOfBits: numberOfBits);
            var xf     = info.Fit(new EmptyDataView(_inRow.Schema));
            var mapper = ((ITransformer)xf).GetRowToRowMapper(_inRow.Schema);
            var column = mapper.OutputSchema["Bar"];
            var outRow = mapper.GetRow(_inRow, new[] { column });

            if (type is VectorDataViewType)
            {
                _vecGetter = outRow.GetGetter <VBuffer <uint> >(column);
            }
            else
            {
                _getter = outRow.GetGetter <uint>(column);
            }
        }
Ejemplo n.º 13
0
        public static IList GetList(String csvLink, Boolean hasColumnNames, String groupBy, String filterBy, String filterValue, Boolean excatFilterMatch, String[] columnNamesToInclude)
        {
            ListImpl list = new ListImpl();

            //WebClient client = new WebClient();
            String content = "";

            content = GetContent(csvLink.Replace("dl=0", "dl=1"));

            int iStart = content.IndexOf("//dl-web.dropbox.com/");

            if (iStart > 0)
            {
                int iEnd = content.IndexOf("\"", iStart);
                if (iEnd > 0)
                {
                    csvLink = content.Substring(iStart, iEnd - iStart);
                    content = GetContent(csvLink);
                }
            }
            if( columnNamesToInclude != null )
                columnNamesToInclude = columnNamesToInclude.Select(x => x.ToLower()).ToArray();

            var lines = content.Split('\r');

            //var lines = System.IO.File.ReadAllLines(fileName, System.Text.Encoding.UTF7);

            List<int> colsWithContent = new List<int>();

            List<IRow> rows = new List<IRow>();

            for (int i = 0; i < lines.Count(); i++)
            {
                var row = lines[i].Split(';');
                IRow newRow = new RowImpl();
                for (int iCol = 0; iCol < row.Length; iCol++)
                {
                    String colValue = row[iCol];

                    //  ColumnNames
                    if (i == 0 && hasColumnNames && (columnNamesToInclude == null || columnNamesToInclude.Contains(colValue.ToLower())))
                    {
                        if (!String.IsNullOrEmpty(colValue))
                        {
                            if (!String.IsNullOrEmpty(colValue))
                            {
                                colsWithContent.Add(iCol);
                            }

                            list.ColumnNames.Add(new ColumnNameImpl { Name = colValue });
                        }
                    }
                    else if (i > 0 || !hasColumnNames)
                    {
                        if (!hasColumnNames || colsWithContent.Contains(iCol))
                        {
                            int realCol = colsWithContent.IndexOf(iCol);
                            if (hasColumnNames && String.IsNullOrEmpty(list.ColumnNames[realCol].Type))
                                list.ColumnNames[realCol].Type = GetType(colValue);

                            var newVal = new ValueImpl { Value = colValue };
                            Boolean addRow = true;
                            DateTime tTemp;
                            if (list.ColumnNames[realCol].Type == "DateTime")
                            {
                                if (!DateTime.TryParse(colValue, out tTemp))
                                    tTemp = DateTime.MinValue;

                                newVal.Value = tTemp;

                            }

                            if (newVal.Value is String)
                                newVal.Value = newVal.Value.ToString().Replace("\n", "");

                            if (addRow)
                                newRow.Values.Add(newVal);

                        }
                    }
                }

                if (!hasColumnNames || (newRow.Values.Count == list.ColumnNames.Count && newRow.Values.Any(y => !String.IsNullOrEmpty(y.Value as String)) && (i > 0 || !hasColumnNames)))
                    rows.Add(newRow);
            }

            ListEntryImpl listEntry = null;

            if (!String.IsNullOrEmpty(filterBy))
            {
                int index = list.ColumnNames.Select(x => x.Name.ToLower()).ToList().IndexOf(filterBy.ToLower());

                if (index > -1)
                {
                    if (excatFilterMatch)
                        rows = rows.Where(x => (x.Values[index].Value ?? "").ToString() == filterValue).ToList();
                    else
                        rows = rows.Where(x => (x.Values[index].Value ?? "").ToString().ToLower().Contains(filterValue.ToLower())).ToList();
                }
            }

            if (!String.IsNullOrEmpty(groupBy))
            {
                int index = list.ColumnNames.Select(x => x.Name).ToList().IndexOf(groupBy);

                if (index > -1)
                {
                    var grouping = rows.GroupBy(x => x.Values[index].Value.ToString()).OrderBy(x => x.Key);
                    rows = new List<IRow>();

                    foreach (var group in grouping)
                    {
                        listEntry = new ListEntryImpl { Title = group.Key.Replace("\n", ""), Parent = list, Rows = group.ToList() };
                        list.Add(listEntry);
                    }

                }
            }

            if (list.Count() == 0 && rows.Count > 0)
            {
                listEntry = new ListEntryImpl { Parent = list, Rows = rows };
                list.Add(listEntry);
            }

            list.CsvLink = csvLink;

            return list;
        }
Ejemplo n.º 14
0
 /// <summary>
 /// 用于创建modelBuilder
 /// </summary>
 /// <param name="modelBuilder"></param>
 protected internal virtual void DoRegisterTypes(ModelBuilder modelBuilder)
 {
     //TODO Dmn类型注册
     try
     {
         AllowedAnswersImpl.RegisterType(modelBuilder);
         AllowedValuesImpl.RegisterType(modelBuilder);
         ArtifactImpl.RegisterType(modelBuilder);
         AssociationImpl.RegisterType(modelBuilder);
         AuthorityRequirementImpl.RegisterType(modelBuilder);
         BindingImpl.RegisterType(modelBuilder);
         BusinessContextElementImpl.RegisterType(modelBuilder);
         BusinessKnowledgeModelImpl.RegisterType(modelBuilder);
         ColumnImpl.RegisterType(modelBuilder);
         ContextEntryImpl.RegisterType(modelBuilder);
         ContextImpl.RegisterType(modelBuilder);
         DecisionImpl.RegisterType(modelBuilder);
         DecisionMadeReferenceImpl.RegisterType(modelBuilder);
         DecisionMakerReferenceImpl.RegisterType(modelBuilder);
         DecisionOwnedReferenceImpl.RegisterType(modelBuilder);
         DecisionOwnerReferenceImpl.RegisterType(modelBuilder);
         DecisionRuleImpl.RegisterType(modelBuilder);
         DecisionServiceImpl.RegisterType(modelBuilder);
         DecisionTableImpl.RegisterType(modelBuilder);
         DefaultOutputEntryImpl.RegisterType(modelBuilder);
         DefinitionsImpl.RegisterType(modelBuilder);
         DescriptionImpl.RegisterType(modelBuilder);
         DmnElementImpl.RegisterType(modelBuilder);
         DmnElementReferenceImpl.RegisterType(modelBuilder);
         DrgElementImpl.RegisterType(modelBuilder);
         DrgElementReferenceImpl.RegisterType(modelBuilder);
         ElementCollectionImpl.RegisterType(modelBuilder);
         EncapsulatedDecisionReferenceImpl.RegisterType(modelBuilder);
         EncapsulatedLogicImpl.RegisterType(modelBuilder);
         ExpressionImpl.RegisterType(modelBuilder);
         ExtensionElementsImpl.RegisterType(modelBuilder);
         FormalParameterImpl.RegisterType(modelBuilder);
         FunctionDefinitionImpl.RegisterType(modelBuilder);
         ImpactedPerformanceIndicatorReferenceImpl.RegisterType(modelBuilder);
         ImpactingDecisionReferenceImpl.RegisterType(modelBuilder);
         ImportImpl.RegisterType(modelBuilder);
         ImportedElementImpl.RegisterType(modelBuilder);
         ImportedValuesImpl.RegisterType(modelBuilder);
         InformationItemImpl.RegisterType(modelBuilder);
         InformationRequirementImpl.RegisterType(modelBuilder);
         InputImpl.RegisterType(modelBuilder);
         InputClauseImpl.RegisterType(modelBuilder);
         InputDataImpl.RegisterType(modelBuilder);
         InputDataReferenceImpl.RegisterType(modelBuilder);
         InputDecisionReferenceImpl.RegisterType(modelBuilder);
         InputEntryImpl.RegisterType(modelBuilder);
         InputExpressionImpl.RegisterType(modelBuilder);
         InputValuesImpl.RegisterType(modelBuilder);
         InvocationImpl.RegisterType(modelBuilder);
         ItemComponentImpl.RegisterType(modelBuilder);
         ItemDefinitionImpl.RegisterType(modelBuilder);
         ItemDefinitionReferenceImpl.RegisterType(modelBuilder);
         KnowledgeRequirementImpl.RegisterType(modelBuilder);
         KnowledgeSourceImpl.RegisterType(modelBuilder);
         ListImpl.RegisterType(modelBuilder);
         LiteralExpressionImpl.RegisterType(modelBuilder);
         ModelElementInstanceImpl.RegisterType(modelBuilder);
         NamedElementImpl.RegisterType(modelBuilder);
         OrganizationUnitImpl.RegisterType(modelBuilder);
         OutputImpl.RegisterType(modelBuilder);
         OutputClauseImpl.RegisterType(modelBuilder);
         OutputDecisionReferenceImpl.RegisterType(modelBuilder);
         OutputEntryImpl.RegisterType(modelBuilder);
         OutputValuesImpl.RegisterType(modelBuilder);
         OwnerReferenceImpl.RegisterType(modelBuilder);
         ParameterReferenceImpl.RegisterType(modelBuilder);
         PerformanceIndicatorImpl.RegisterType(modelBuilder);
         QuestionImpl.RegisterType(modelBuilder);
         RelationImpl.RegisterType(modelBuilder);
         RequiredAuthorityReferenceImpl.RegisterType(modelBuilder);
         RequiredDecisionReferenceImpl.RegisterType(modelBuilder);
         RequiredInputReferenceImpl.RegisterType(modelBuilder);
         RequiredKnowledgeReferenceImpl.RegisterType(modelBuilder);
         RowImpl.RegisterType(modelBuilder);
         RuleImpl.RegisterType(modelBuilder);
         SourceRefImpl.RegisterType(modelBuilder);
         SupportedObjectiveReferenceImpl.RegisterType(modelBuilder);
         TargetRefImpl.RegisterType(modelBuilder);
         TextImpl.RegisterType(modelBuilder);
         TextAnnotationImpl.RegisterType(modelBuilder);
         TypeImpl.RegisterType(modelBuilder);
         TypeRefImpl.RegisterType(modelBuilder);
         UnaryTestsImpl.RegisterType(modelBuilder);
         UsingProcessReferenceImpl.RegisterType(modelBuilder);
         UsingTaskReferenceImpl.RegisterType(modelBuilder);
         VariableImpl.RegisterType(modelBuilder);
     }
     catch (System.Exception ex)
     {
         throw ex;
     }
     /// <summary>
     /// camunda extensions </summary>
 }
Ejemplo n.º 15
0
        private List<Row> Collect(int port, RowSchema dataType)
        {
            List<Row> items = new List<Row>();
            IFormatter formatter = new BinaryFormatter();
            Unpickler unpickler = new Unpickler();
            Socket sock = new Socket(SocketType.Stream, ProtocolType.Tcp);
            sock.Connect("127.0.0.1", port);
            NetworkStream ns = new NetworkStream(sock);

            using (BinaryReader br = new BinaryReader(ns))
            {
                byte[] buffer = null;
                do
                {
                    buffer = br.ReadBytes(4);
                    if (buffer != null && buffer.Length > 0)
                    {
                        //In JVM, Multibyte data items are always stored in big-endian order, where the high bytes come first
                        //http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html
                        //So we should handle revert buffer if our system is little-endian
                        //https://msdn.microsoft.com/en-us/library/system.bitconverter(v=vs.110).aspx
                        if (BitConverter.IsLittleEndian)
                        {
                            Array.Reverse(buffer);
                        }

                        int len = BitConverter.ToInt32(buffer, 0);
                        byte[] data = br.ReadBytes(len);
                        foreach (var item in (unpickler.loads(data) as object[]))
                        {
                            RowImpl row = new RowImpl(item, dataType);
                            items.Add(row);
                        }
                    }
                } while (buffer != null && buffer.Length > 0);
            }

            return items;
        }
Ejemplo n.º 16
0
        public void RowConstructTest()
        {
            Row row1 = new RowImpl(new object[]{1, "id", "name"}, basicSchema);
            Row row2 = new RowImpl(new List<object>(){1, "id", "name"}, basicSchema);
            
            // dynamic data tyoe is not array or list
            Assert.Throws(typeof(Exception), new TestDelegate(() => { new RowImpl(new object(), basicSchema); }));

            // dynamic data count is not same with its schema
            Assert.Throws(typeof(Exception), new TestDelegate(() => { new RowImpl(new List<object>() { "id", "name" }, basicSchema); }));

            // complex scheme
            Row row3 = new RowImpl(new object[]{ new object[]{"redmond", "washington"}, 1, "id", "name"}, complexSchema);
        }