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"); }); }
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"); })); }
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,]"); }
/// <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; }
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,]"); }
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); }
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); }
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); }
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); } }
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); } }
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); } }
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); } }
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; }
/// <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> }
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; }
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); }