public Transform(TransformFunction function = null) { Function = function; Input = AddInput("Input", Units.Scalar); Output = AddOutput("Output", Units.Scalar); Input.ValueChanged += (s, e) => Run(); }
public Transform (TransformFunction function = null) { Function = function; Input = AddInput ("Input", Units.Scalar); Output = AddOutput ("Output", Units.Scalar); Input.ValueChanged += (s,e) => Run (); }
public PatchOperation(TransformFunction transform, IQueryableDocument document, IWhereFragment fragment, IDictionary <string, object> patch, ISerializer serializer) { _transform = transform; _document = document; _fragment = fragment; _patch = patch; _serializer = serializer; }
internal void CreatePatching() { if (PLV8Enabled) { var patching = new TransformFunction(this, PatchDoc, SchemaBuilder.GetJavascript(this, "mt_patching")); patching.OtherArgs.Add("patch"); Transforms.Load(patching); } }
public void create_function_for_file() { var options = new StoreOptions(); var func = TransformFunction.ForFile(options, _getFullnameJs); func.Name.ShouldBe("get_fullname"); func.Body.ShouldContain("module.exports"); func.Identifier.Name.ShouldBe("mt_transform_get_fullname"); }
public StoreOptions() { Events = new EventGraph(this); Schema = new MartenRegistry(this); Transforms = new Transforms.Transforms(this); var patching = new TransformFunction(this, PatchDoc, SchemaBuilder.GetJavascript(this, "mt_patching")); patching.OtherArgs.Add("patch"); Transforms.Load(patching); }
public void FunctionFromMethod() { //create a custom function TransformFunction function1 = new TransformFunction( this, "TestMethod", null, new TableColumn("test"), null); Assert.True((Int32)function1.RunFunction(new object[] { 6, 2 }) == 8); }
public void picks_up_the_schema_from_storeoptions() { var options = new StoreOptions { DatabaseSchemaName = "other" }; var func = new TransformFunction(options, "nfl.team.chiefs", "module.exports = function(doc){return doc;};"); func.Identifier.Schema.ShouldBe("other"); }
private decimal CalculateHistoricalValue(List <QuotesModel> quotes, TransformFunction transform, HistoricalDataSeriesType dataSeries) { List <decimal> values; switch (dataSeries) { case HistoricalDataSeriesType.Open: values = quotes.Select(q => q.Open).ToList(); break; case HistoricalDataSeriesType.Close: values = quotes.Select(q => q.Close).ToList(); break; case HistoricalDataSeriesType.High: values = quotes.Select(q => q.High).ToList(); break; case HistoricalDataSeriesType.Low: values = quotes.Select(q => q.Low).ToList(); break; case HistoricalDataSeriesType.Volume: values = quotes.Select(q => q.Volume).ToList(); break; default: throw new ArgumentOutOfRangeException(nameof(dataSeries), dataSeries, null); } switch (transform) { case TransformFunction.First: return(values.First()); case TransformFunction.Max: return(values.Max(v => v)); case TransformFunction.Min: return(values.Min(v => v)); case TransformFunction.Sum: return(values.Sum(v => v)); case TransformFunction.Avg: return(values.Average(v => v)); default: throw new ArgumentOutOfRangeException(nameof(transform), transform, null); } }
public static object[] TransformFunctionMany(this object[] items, TransformFunction filter) { if (items == null) { return(null); } if (filter == null) { filter = PassthroughTransform; } object[] newItems = new object[items.Length]; for (int i = 0; i < items.Length; i++) { newItems[i] = filter(items[i]); } return(newItems); }
public void end_to_end_test_using_the_transform() { var user = new User { FirstName = "Jeremy", LastName = "Miller" }; var json = new TestsSerializer().ToCleanJson(user); var func = TransformFunction.ForFile(new StoreOptions(), _getFullnameJs); using var conn = theStore.Tenancy.Default.Database.CreateConnection(); conn.Open(); conn.CreateCommand(func.GenerateFunction()).ExecuteNonQuery(); var actual = (string)conn.CreateCommand("select mt_transform_get_fullname(:json)") .With("json", json, NpgsqlDbType.Jsonb) .ExecuteScalar(); actual.ShouldBe("{\"fullname\": \"Jeremy Miller\"}"); }
public void does_not_regenerate_the_function_if_it_exists() { var schema = Substitute.For <IDocumentSchema>(); var dbobjects = Substitute.For <IDbObjects>(); schema.DbObjects.Returns(dbobjects); var func = TransformFunction.ForFile(new StoreOptions(), "get_fullname.js"); dbobjects.DefinitionForFunction(func.Function).Returns(func.GenerateFunction()); var runner = Substitute.For <IDDLRunner>(); func.GenerateSchemaObjectsIfNecessary(AutoCreate.All, schema, runner); var generated = func.GenerateFunction(); runner.DidNotReceive().Apply(func, generated); }
public void end_to_end_test_using_the_transform() { var user = new User { FirstName = "Jeremy", LastName = "Miller" }; var json = new TestsSerializer().ToCleanJson(user); var func = TransformFunction.ForFile(new StoreOptions(), _getFullnameJs); using (var conn = theStore.Tenancy.Default.OpenConnection()) { var cmd = new NpgsqlCommand(func.GenerateFunction()); conn.Execute(cmd); var cmd2 = new NpgsqlCommand("select mt_transform_get_fullname(:json)").WithJsonParameter("json", json); var actual = conn.QueryScalar <string>(cmd2); actual.ShouldBe("{\"fullname\": \"Jeremy Miller\"}"); } }
public Mapping GetValidationMapping(string columnName) { var parameters = new Parameters() { Inputs = new Parameter[] { new ParameterColumn(columnName, ETypeCode.String) }, ReturnParameters = new Parameter[] { new ParameterOutputColumn(columnName, ETypeCode.String) }, Outputs = new Parameter[] { new ParameterOutputColumn(columnName, ETypeCode.String), new ParameterOutputColumn("RejectReason", new TableColumn("RejectReason", EDeltaType.RejectedReason)) } }; var validationFunction = new TransformFunction(this, GetType().GetMethod(nameof(Run)), null, parameters, null) { FunctionName = ColumnValidation.Name, InitializeMethod = new TransformMethod(GetType().GetMethod(nameof(Initialize))), InvalidAction = ColumnValidation.InvalidAction, OnNull = EErrorAction.Execute, }; var mapping = new MapValidation(validationFunction, parameters); return(mapping); }
public void throws_exception_if_auto_create_is_none_and_the_function_does_not_exist() { var schema = Substitute.For <IDocumentSchema>(); var dbobjects = Substitute.For <IDbObjects>(); schema.DbObjects.Returns(dbobjects); var func = TransformFunction.ForFile(new StoreOptions { AutoCreateSchemaObjects = AutoCreate.None }, "get_fullname.js"); dbobjects.SchemaFunctionNames().Returns(Enumerable.Empty <FunctionName>()); var runner = Substitute.For <IDDLRunner>(); Exception <InvalidOperationException> .ShouldBeThrownBy(() => { func.GenerateSchemaObjectsIfNecessary(AutoCreate.None, schema, runner); }); }
public void does_not_regenerate_the_function_if_it_exists() { var schema = Substitute.For <IDocumentSchema>(); var dbobjects = Substitute.For <IDbObjects>(); schema.DbObjects.Returns(dbobjects); var func = TransformFunction.ForFile(new StoreOptions(), _getFullnameJs); var body = new FunctionBody(func.Function, new string[0], func.GenerateFunction()); dbobjects.DefinitionForFunction(func.Function).Returns(body); var patch = new SchemaPatch(new DdlRules()); func.GenerateSchemaObjectsIfNecessary(AutoCreate.All, schema, patch); var generated = func.GenerateFunction(); patch.UpdateDDL.ShouldNotContain(generated); patch.RollbackDDL.ShouldNotContain(func.Function.QualifiedName); }
public void rebuilds_if_it_does_not_exist_in_the_schema_if_auto_create_is_create_only() { var schema = Substitute.For <IDocumentSchema>(); var dbobjects = Substitute.For <IDbObjects>(); schema.DbObjects.Returns(dbobjects); var func = TransformFunction.ForFile(new StoreOptions { AutoCreateSchemaObjects = AutoCreate.CreateOnly }, "get_fullname.js"); dbobjects.SchemaFunctionNames().Returns(Enumerable.Empty <FunctionName>()); var runner = Substitute.For <IDDLRunner>(); func.GenerateSchemaObjectsIfNecessary(AutoCreate.CreateOnly, schema, runner); var generated = func.GenerateFunction(); runner.Received().Apply(func, generated); }
public void rebuilds_if_it_does_not_exist_in_the_schema_if_auto_create_is_create_only() { var schema = Substitute.For <IDocumentSchema>(); schema.StoreOptions.Returns(new StoreOptions()); var dbobjects = Substitute.For <IDbObjects>(); schema.DbObjects.Returns(dbobjects); var func = TransformFunction.ForFile(new StoreOptions { AutoCreateSchemaObjects = AutoCreate.CreateOnly }, _getFullnameJs); dbobjects.SchemaFunctionNames().Returns(Enumerable.Empty <FunctionName>()); var patch = new SchemaPatch(new DdlRules()); func.GenerateSchemaObjectsIfNecessary(AutoCreate.CreateOnly, schema, patch); var generated = func.GenerateFunction(); patch.UpdateDDL.ShouldContain(generated); }
/// <summary> /// Gets a reference to the specified profile function. /// </summary> /// <param name="functionAssemblyName"></param> /// <param name="functionClassName"></param> /// <param name="functionMethodName"></param> /// <param name="columnName"></param> /// <param name="detailedResults"></param> /// <param name="globalSettings"></param> /// <returns></returns> /// <exception cref="TransformManagerException"></exception> public Mapping GetProfileFunction(string functionAssemblyName, string functionClassName, string functionMethodName, string columnName, bool detailedResults, GlobalSettings globalSettings) { try { var functionMethod = Functions.GetFunctionMethod(functionClassName, functionMethodName, functionAssemblyName); var profileObject = Activator.CreateInstance(functionMethod.type); var property = profileObject.GetType().GetProperty("DetailedResults"); if (property != null) { property.SetValue(profileObject, detailedResults); } var parameters = new Parameters() { Inputs = new Parameter[] { new ParameterColumn("value", new TableColumn(columnName)) }, ResultReturnParameters = new List <Parameter>() { new ParameterOutputColumn("value", ETypeCode.String) }, ResultOutputs = new List <Parameter>() { new ParameterOutputColumn("distribution", ETypeCode.Unknown) }, }; var profileFunction = new TransformFunction(profileObject, functionMethodName, null, parameters, globalSettings); var mapFunction = new MapFunction(profileFunction, parameters, EFunctionCaching.NoCache); return(mapFunction); } catch (Exception ex) { throw new TransformManagerException($"Get profile function failed. {ex.Message}.", ex); } }
public async Task Mappings() { var Source = Helpers.CreateSortedTestData(); var transformMapping = new TransformMapping(); var Mappings = new List <TransformFunction>(); //Mappings.Add(new Function("CustomFunction", false, "test", "return StringColumn + number.ToString();", null, ETypeCode.String, // new dexih.functions.Parameter[] { // new dexih.functions.Parameter("StringColumn", ETypeCode.String, true, null, "StringColumn" ), // new dexih.functions.Parameter("number", ETypeCode.Int32, false, 123) // }, null)); var transformFunction = new TransformFunction( new Func <string, int, string>((StringColumn, number) => StringColumn + number.ToString()), new TableColumn[] { new TableColumn("StringColumn"), new TableColumn("number", ETypeCode.Int32) }, new TableColumn("CustomFunction"), null) { Inputs = new dexih.functions.Parameter[] { new dexih.functions.Parameter("StringColumn", ETypeCode.String, true, null, new TableColumn("StringColumn")), new dexih.functions.Parameter("number", ETypeCode.Int32, false, 123) } }; Mappings.Add(transformFunction); transformFunction = Functions.GetFunction("dexih.functions.BuiltIn.MapFunctions", "Substring").GetTransformFunction(); transformFunction.TargetColumn = new TableColumn("Substring"); transformFunction.Inputs = new dexih.functions.Parameter[] { new dexih.functions.Parameter("name", ETypeCode.String, true, null, new TableColumn("StringColumn")), new dexih.functions.Parameter("start", ETypeCode.Int32, false, 1), new dexih.functions.Parameter("start", ETypeCode.Int32, false, 3) }; Mappings.Add(transformFunction); var MappingColumn = new List <ColumnPair> { new ColumnPair(new TableColumn("DateColumn", ETypeCode.DateTime), new TableColumn("DateColumn", ETypeCode.DateTime)) }; transformMapping = new TransformMapping(Source, false, MappingColumn, Mappings); Assert.Equal(3, transformMapping.FieldCount); var count = 0; while (await transformMapping.ReadAsync() == true) { count = count + 1; Assert.Equal("value" + count.ToString().PadLeft(2, '0') + "123", transformMapping["CustomFunction"]); Assert.Equal("alu", transformMapping["Substring"]); Assert.Equal((DateTime)Convert.ToDateTime("2015-01-" + count.ToString()), (DateTime)transformMapping["DateColumn"]); } Assert.Equal(10, count); //test the getschematable table function. //DataReaderAdapter SchemaTable = TransformMapping.GetSchemaTable(); //Assert.Equal("DateColumn", SchemaTable.Rows[0]["ColumnName"]); //Assert.Equal("CustomFunction", SchemaTable.Rows[1]["ColumnName"]); //Assert.Equal("Substring", SchemaTable.Rows[2]["ColumnName"]); }
public void Init(params double[] Parameters) { _Age = 0; _Params = Parameters; _position = new Vector2(); _scale = 1; _Function = null; }
public static void Run() { var scope = new DebugScope(); // // Create the robot // var leftMotor = HBridgeMotor.CreateForNetduino(PWMChannels.PWM_PIN_D3, Pins.GPIO_PIN_D1, Pins.GPIO_PIN_D2); leftMotor.CalibrationInput.Value = 1; var rightMotor = HBridgeMotor.CreateForNetduino(PWMChannels.PWM_PIN_D6, Pins.GPIO_PIN_D4, Pins.GPIO_PIN_D5); rightMotor.CalibrationInput.Value = 1; // // Create his eyes // var leftRange = new SharpGP2D12 { Name = "LeftRange" }; var rightRange = new SharpGP2D12 { Name = "RightRange" }; leftRange.AnalogInput.ConnectTo(new AnalogInputPin(AnalogChannels.ANALOG_PIN_A0, 10).Analog); rightRange.AnalogInput.ConnectTo(new AnalogInputPin(AnalogChannels.ANALOG_PIN_A1, 10).Analog); scope.ConnectTo(leftRange.DistanceOutput); scope.ConnectTo(rightRange.DistanceOutput); // // Now some intelligence // Each motor is driven by the distance sensor's reading // var nearDist = 0.1; var farDist = 0.5; var minSpeed = 0.4; TransformFunction distanceToSpeed = d => { if (d < nearDist) { return(-minSpeed); } if (d > farDist) { return(1); } var a = (d - nearDist) / (farDist - nearDist); return(a * (1 - minSpeed) + minSpeed); }; var leftSpeed = new Transform(distanceToSpeed); leftSpeed.Input.ConnectTo(leftRange.DistanceOutput); leftSpeed.Output.ConnectTo(leftMotor.SpeedInput); var rightSpeed = new Transform(distanceToSpeed); rightSpeed.Input.ConnectTo(rightRange.DistanceOutput); rightSpeed.Output.ConnectTo(rightMotor.SpeedInput); }
/// <summary> /// Zvolí a inicializuje transformaci podle aktuálního stavu výběru /// </summary> /// <param name="mousePosition"></param> public void InitTransformation(Point mousePosition) { this.flippedHorizontaly = this.flippedVerticaly = false; if (this.State == SelectionState.Draw) { // změna proporcí nově kresleného objektu this.defaultProportions = new Point(1, 1); this.TransformLock = TransformLock.None; this.solidPoint = this.position; this.Transform = this.resizeToPoint; return; } else if (this.State == SelectionState.Resize) { // změna pozice výběru if (this.border.Visibility == Visibility.Hidden || this.border.ActiveCorner == null) { this.defaultProportions = new Point(1, 1); this.border.Visibility = Visibility.Hidden; this.solidPoint = mousePosition; this.Transform = this.moveToPoint; return; } // změna proporcí výběru this.defaultProportions = this.proportions; this.Transform = this.resizeToPoint; switch (this.border.ActiveCorner.Name) { case "corner1": this.drawCanvas.Cursor = Cursors.SizeNESW; this.TransformLock = TransformLock.None; this.solidPoint = new Point(this.position.X + this.proportions.X, this.position.Y + this.proportions.Y); this.flippedHorizontaly = this.flippedVerticaly = true; break; case "corner2": this.drawCanvas.Cursor = Cursors.SizeNWSE; this.TransformLock = TransformLock.None; this.solidPoint = new Point(this.position.X + this.proportions.X, this.position.Y); this.flippedHorizontaly = true; this.flippedVerticaly = false; break; case "corner3": this.drawCanvas.Cursor = Cursors.SizeNWSE; this.TransformLock = TransformLock.None; this.solidPoint = new Point(this.position.X, this.position.Y + this.proportions.Y); this.flippedHorizontaly = false; this.flippedVerticaly = true; break; case "corner4": this.drawCanvas.Cursor = Cursors.SizeNESW; this.TransformLock = TransformLock.None; this.solidPoint = this.position; this.flippedHorizontaly = this.flippedVerticaly = false; break; case "corner5": this.drawCanvas.Cursor = Cursors.SizeNS; this.TransformLock = TransformLock.Horizontal; this.solidPoint = new Point(this.position.X, this.position.Y + this.proportions.Y); this.flippedVerticaly = true; break; case "corner6": this.drawCanvas.Cursor = Cursors.SizeNS; this.TransformLock = TransformLock.Horizontal; this.solidPoint = this.position; this.flippedVerticaly = false; break; case "corner7": this.drawCanvas.Cursor = Cursors.SizeWE; this.TransformLock = TransformLock.Vertical; this.solidPoint = new Point(this.position.X + this.proportions.X, this.position.Y); this.flippedHorizontaly = true; break; case "corner8": this.drawCanvas.Cursor = Cursors.SizeWE; this.TransformLock = TransformLock.Vertical; this.solidPoint = this.position; this.flippedHorizontaly = false; break; default: this.Transform = delegate(Point point) { }; break; } } else { if (this.border.ActiveCorner == null) { this.Transform = delegate(Point point) { } } ; else { this.drawCanvas.Cursor = Cursors.Cross; this.border.Visibility = Visibility.Hidden; this.Transform = rotateToPoint; this.solidAngle = 180 * Math.Atan(this.Width / this.Height) / Math.PI; switch (this.border.ActiveCorner.Name) { case "corner1": this.solidAngle = 180 - this.solidAngle; break; case "corner2": break; case "corner3": this.solidAngle -= 180; break; case "corner4": this.solidAngle = -this.solidAngle; break; } this.solidAngle -= this.rotationAngle; } } }
public BitmapDrawer(DataProvider data) { this.data = data; DrawImage = new TransformFunction(DrawImageWinForms); }
public static DataTable GenerateDiffReport2(DataTable diff, DataTable first, IEnumerable <string> pkeyColumns, IEnumerable <string> ignoreColumns, TransformFunction filter) { if (filter == null) { filter = PassthroughTransform; } var allColumnSet = first.GetColumnNames().ToList(); DataTable resultTable = new DataTable(); resultTable.Columns.Add("OLD(0)/NEW(1)"); resultTable.Columns.Add("PairNumber"); resultTable.Columns.Add("PkeyDelta"); resultTable.Columns.Add("ValueDelta"); resultTable.Columns.Add("DeltaSummary"); foreach (var col in allColumnSet) { resultTable.Columns.Add(col); } int columnCount = first.Columns.Count; int id = 0; for (int i = 0; i < diff.Rows.Count; i++) { var itemList1 = new List <object>(); var itemList2 = new List <object>(); itemList1.Add("0"); itemList2.Add("1"); DataRow oldRow = diff.Rows[i]["OldRow"] as DataRow; DataRow newRow = diff.Rows[i]["NewRow"] as DataRow; bool oldRowIsNull = oldRow == null; bool newRowIsNull = newRow == null; object[] firstItemArray = oldRowIsNull ? new object[columnCount] : oldRow.ItemArray; object[] secondItemArray = newRowIsNull ? new object[columnCount] : newRow.ItemArray; if (oldRowIsNull || newRowIsNull) { itemList1.Add(""); //no id itemList2.Add(""); //no id } else { itemList1.Add(id); itemList2.Add(id++); } if (oldRowIsNull) { itemList2.AddRange("", ""); } else { itemList2.AddRange(diff.Rows[i]["PkeyDelta"], diff.Rows[i]["ValueDelta"]); } if (newRowIsNull) { itemList1.AddRange("", ""); } else { itemList1.AddRange(diff.Rows[i]["PkeyDelta"], diff.Rows[i]["ValueDelta"]); } //string a = firstItemArray.SequenceToString(" "); //string b = firstItemArray.SequenceToString(" "); StringBuilder changeSummary = new StringBuilder(); changeSummary.Append("\""); if (!oldRowIsNull && !newRowIsNull) { for (int j = 0; j < firstItemArray.Length; j++) { itemList1.Add(firstItemArray[j]); if (!firstItemArray[j].Equals(secondItemArray[j])) { itemList2.Add(secondItemArray[j]); changeSummary.Append(string.Concat(allColumnSet[j], " {", filter(firstItemArray[j]), "} / {", filter(secondItemArray[j]), "}\n")); } else { itemList2.Add("''"); } } } else { itemList1.AddRange(firstItemArray); itemList2.AddRange(secondItemArray); } changeSummary.Append("\""); //firstItemArray = firstItemArray.FillNull(string.Empty).FillEmpty(" "); //secondItemArray = secondItemArray.FillNull(string.Empty).FillEmpty(" "); if (!oldRowIsNull) { itemList1[3] = changeSummary.ToString(); resultTable.Rows.Add(itemList1.ToArray().TransformFunctionMany(filter).FillEmpty(" ")); } if (!newRowIsNull) { resultTable.Rows.Add(itemList2.ToArray().TransformFunctionMany(filter).FillEmpty(" ")); } } return(resultTable); }
public void SetImageFast() { DrawImage = new TransformFunction(DrawImageWinForms); }
public Transformation(string name, TransformFunction transform) : this(name, transform, null) { }
// Main parse loop void Parse() { // First, try to see if the transform is actually "no transform" if (parseString.Trim() == "none") { return; } // Flag to report an error if a transform function ends too soon bool allowEnd = true; try { while (true) { // First, try to extract a command allowEnd = true; var function = ParseTransformFunctionType(); allowEnd = false; switch (function) { case TransformFunctionType.Matrix: { var a = DelimitedParenthesizedSequence(6, 6); transformFunctions.Add(TransformFunction.Matrix(a[0], a[1], a[2], a[3], a[4], a[5])); break; } case TransformFunctionType.Translate: { var a = DelimitedParenthesizedSequence(1, 2); transformFunctions.Add(TransformFunction.Translate(a[0], a.TryGetOr(1, 0))); break; } case TransformFunctionType.Rotate: { var a = DelimitedParenthesizedSequence(1, 1); transformFunctions.Add(TransformFunction.Rotate(a[0].ToRadians())); break; } case TransformFunctionType.Scale: { var a = DelimitedParenthesizedSequence(1, 2); transformFunctions.Add(TransformFunction.Scale(a[0], a.TryGetOr(1, a[0]))); break; } case TransformFunctionType.SkewX: { var a = DelimitedParenthesizedSequence(1, 1); transformFunctions.Add(TransformFunction.SkewX(a[0].ToRadians())); break; } case TransformFunctionType.SkewY: { var a = DelimitedParenthesizedSequence(1, 1); transformFunctions.Add(TransformFunction.SkewY(a[0].ToRadians())); break; } default: // This code will never come, but the C# compiler cannot detect it throw new ParserException("Unrecognized transform function matched!"); } } } catch (EndParseException) { // The name says it all if (!allowEnd) { throw new ParserException("Unexpected end of transform string!"); } } }
public void SetImageNaive() { DrawImage = new TransformFunction(DrawImageNaive); }
public Transformation(string name, TransformFunction transform, string trigger) { this.name = name; this.transform = transform; this.trigger = trigger; }
public void SetImageFiltering() { DrawImage = new TransformFunction(DrawImageFiltering); }