How to use EvaluateNumeric method of NBi.Core.Transformation.Transformer.Native.NumericToAdd class

Best NBi code snippet using NBi.Core.Transformation.Transformer.Native.NumericToAdd.EvaluateNumeric

NumericTransformations.cs

Source:NumericTransformations.cs Github

copy

Full Screen

...17 switch (value)18 {19 case null: return EvaluateNull();20 case DBNull _: return EvaluateNull();21 case decimal numeric: return EvaluateNumeric(numeric);22 default: return EvaluateUncasted(value);23 }24 }25 private object EvaluateUncasted(object value)26 {27 if (value as string == "(null)")28 EvaluateNull();29 var caster = new NumericCaster();30 var numeric = caster.Execute(value);31 return EvaluateNumeric(numeric);32 }33 protected virtual object EvaluateNull() => null;34 protected abstract decimal EvaluateNumeric(decimal numeric);35 }36 class NullToZero : AbstractNumericTransformation37 {38 protected override object EvaluateNull() => 0;39 protected override decimal EvaluateNumeric(decimal numeric) => numeric;40 }41 class NumericToCeiling : AbstractNumericTransformation42 {43 protected override decimal EvaluateNumeric(decimal numeric) => Math.Ceiling(numeric);44 }45 class NumericToFloor : AbstractNumericTransformation46 {47 protected override decimal EvaluateNumeric(decimal numeric) => Math.Floor(numeric);48 }49 class NumericToInteger : AbstractNumericTransformation50 {51 protected override decimal EvaluateNumeric(decimal numeric) => Math.Round(numeric, 0);52 }53 class NumericToRound : AbstractNumericTransformation54 {55 public IScalarResolver<int> Digits { get; }56 public NumericToRound(IScalarResolver<int> digits)57 => Digits = digits;58 protected override decimal EvaluateNumeric(decimal numeric) => Math.Round(numeric, Digits.Execute());59 }60 class NumericToClip : AbstractNumericTransformation61 {62 public IScalarResolver<decimal> Min { get; }63 public IScalarResolver<decimal> Max { get; }64 public NumericToClip(IScalarResolver<decimal> min, IScalarResolver<decimal> max)65 => (Min, Max) = (min, max);66 protected override decimal EvaluateNumeric(decimal numeric) => (numeric < Min.Execute()) ? Min.Execute() : (numeric > Max.Execute()) ? Max.Execute() : numeric;67 }68 abstract class AbstractNumericArithmetic : AbstractNumericTransformation69 {70 public IScalarResolver<decimal> Value { get; }71 public AbstractNumericArithmetic(IScalarResolver<decimal> value)72 => Value = value;73 }74 class NumericToAdd : AbstractNumericArithmetic75 {76 public IScalarResolver<int> Times { get; }77 public NumericToAdd(IScalarResolver<decimal> value, IScalarResolver<int> times)78 : base(value) => Times = times;79 public NumericToAdd(IScalarResolver<decimal> value)80 : this(value, new LiteralScalarResolver<int>(1)) { }81 protected override decimal EvaluateNumeric(decimal value)82 => value + (Value.Execute() * Times.Execute());83 }84 class NumericToSubtract : NumericToAdd85 {86 public NumericToSubtract(IScalarResolver<decimal> value, IScalarResolver<int> times)87 : base(value, times) { }88 public NumericToSubtract(IScalarResolver<decimal> value)89 : base(value) { }90 protected override decimal EvaluateNumeric(decimal value)91 => value - (Value.Execute() * Times.Execute());92 }93 class NumericToIncrement : NumericToAdd94 {95 public NumericToIncrement()96 : base(new LiteralScalarResolver<decimal>(1)) { }97 }98 class NumericToDecrement : NumericToSubtract99 {100 public NumericToDecrement()101 : base(new LiteralScalarResolver<decimal>(1)) { }102 }103 class NumericToMultiply : AbstractNumericArithmetic104 {105 public NumericToMultiply(IScalarResolver<decimal> value)106 : base(value) { }107 protected override decimal EvaluateNumeric(decimal value)108 => value * Value.Execute();109 }110 class NumericToDivide : AbstractNumericArithmetic111 {112 public NumericToDivide(IScalarResolver<decimal> value)113 : base(value) { }114 protected override decimal EvaluateNumeric(decimal value)115 => value / Value.Execute();116 }117 class NumericToInvert : AbstractNumericTransformation118 {119 public NumericToInvert()120 { }121 protected override decimal EvaluateNumeric(decimal value) => 1/value;122 }123}...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run NBi automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful