public NumericDataModel() { _data = new NumericDataCollection(); _function = new RandomFunction { DataPoints = 1000, ValueStart = 100 }; _function.PropertyChanged += OnFunctionPropertyChanged; this.Generate(); }
public async Task Cube_ShouldReturnCube(int input, int expected) { //Arrange var req = FakeHttpRequest.FakeHttpRequestWithObject(new { Num = input }); var log = new FakeListLogger(); //Act var response = (OkObjectResult)await RandomFunction.Cube(req, log); //Assert response.StatusCode.Should().Be((int)HttpStatusCode.OK); response.Value.Should().Be(expected); log.Logs[0].Should().Be($"{input} cube is {expected}"); }
private void buttonInitializeNet_Click(object sender, EventArgs e) { if (currentProject == null) { MessageBox.Show("No network loaded.", "Invalid Operation", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } DialogResult dr = MessageBox.Show("All weights will be reset - are you sure?", "Confirmation", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (dr == DialogResult.OK) { try { IInitializer initFunct; double tmp; double? param1 = null; double? param2 = null; if (double.TryParse(textParam1.Text, out tmp)) { param1 = tmp; } if (double.TryParse(textParam2.Text, out tmp)) { param2 = tmp; } switch ((InitializerFunction)comboInitializeFunction.SelectedItem) { case InitializerFunction.Constant: initFunct = new ConstantFunction(param1.Value); break; case InitializerFunction.NguyenWidrow: initFunct = new NguyenWidrowFunction(param1.Value); break; case InitializerFunction.NormRand: initFunct = new NormalizedRandomFunction(); break; case InitializerFunction.Random: initFunct = new RandomFunction(param1.Value, param2.Value); break; case InitializerFunction.Zero: initFunct = new ZeroFunction(); break; default: throw new Exception("InitializerFunction undefined."); } // 需要设置回前面因为反序列化在新状态下失败。 不知道为什么。 IInitializer oldInitializer; foreach (ILayer layer in currentProject.Network.Layers) { oldInitializer = layer.Initializer; layer.Initializer = initFunct; layer.Initialize(); layer.Initializer = oldInitializer; foreach (IConnector conn in layer.TargetConnectors) { oldInitializer = conn.Initializer; conn.Initializer = initFunct; conn.Initialize(); conn.Initializer = oldInitializer; } } //currentProject.Network.Initialize(); 已单独调用 } catch (Exception ex) { MessageBox.Show("Error in program - " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
/// <summary> /// Tries to create an Leviathan Function expression if the function Uri correseponds to a supported Leviathan Function /// </summary> /// <param name="u">Function Uri</param> /// <param name="args">Function Arguments</param> /// <param name="scalarArgs">Scalar Arguments</param> /// <param name="expr">Generated Expression</param> /// <returns>Whether an expression was successfully generated</returns> public bool TryCreateExpression(Uri u, List <ISparqlExpression> args, Dictionary <String, ISparqlExpression> scalarArgs, out ISparqlExpression expr) { // If any Scalar Arguments are present then can't possibly be a Leviathan Function if (scalarArgs.Count > 0) { expr = null; return(false); } String func = u.ToString(); if (func.StartsWith(LeviathanFunctionsNamespace)) { func = func.Substring(LeviathanFunctionsNamespace.Length); ISparqlExpression lvnFunc = null; switch (func) { case All: if (args.Count == 1) { lvnFunc = new AggregateTerm(new AllAggregate(args.First())); } else if (args.Count == 2 && args.First() is DistinctModifier) { lvnFunc = new AggregateTerm(new AllAggregate(args.Last(), true)); } else { throw new RdfParseException("Incorrect number of arguments for Leviathan all() aggregate"); } break; case Any: if (args.Count == 1) { lvnFunc = new AggregateTerm(new AnyAggregate(args.First())); } else if (args.Count == 2 && args.First() is DistinctModifier) { lvnFunc = new AggregateTerm(new AnyAggregate(args.Last(), true)); } else { throw new RdfParseException("Incorrect number of arguments for Leviathan any() aggregate"); } break; case Cartesian: if (args.Count == 4) { lvnFunc = new CartesianFunction(args[0], args[1], args[2], args[3]); } else if (args.Count == 6) { lvnFunc = new CartesianFunction(args[0], args[1], args[2], args[3], args[4], args[5]); } else { throw new RdfParseException("Incorrect number of arguments for Leviathan cartesian() function"); } break; case Cube: if (args.Count == 1) { lvnFunc = new CubeFunction(args.First()); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan cube() function"); } break; case DegreesToRadians: if (args.Count == 1) { lvnFunc = new DegreesToRadiansFunction(args.First()); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan degrees-to-radians() function"); } break; case E: if (args.Count == 1) { lvnFunc = new EFunction(args.First()); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan e() function"); } break; case Factorial: if (args.Count == 1) { lvnFunc = new FactorialFunction(args.First()); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan factorial() function"); } break; case Ln: if (args.Count == 1) { lvnFunc = new LeviathanNaturalLogFunction(args.First()); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan ln() function"); } break; case Log: if (args.Count == 1) { lvnFunc = new LogFunction(args.First()); } else if (args.Count == 2) { lvnFunc = new LogFunction(args.First(), args.Last()); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan log() function"); } break; case MD5Hash: if (args.Count == 1) { lvnFunc = new MD5HashFunction(args.First()); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan md5hash() function"); } break; case Median: if (args.Count == 1) { lvnFunc = new AggregateTerm(new MedianAggregate(args.First())); } else if (args.Count == 2 && args.First() is DistinctModifier) { lvnFunc = new AggregateTerm(new MedianAggregate(args.Last(), true)); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan median() aggregate"); } break; case Mode: if (args.Count == 1) { lvnFunc = new AggregateTerm(new ModeAggregate(args.First())); } else if (args.Count == 2 && args.First() is DistinctModifier) { lvnFunc = new AggregateTerm(new ModeAggregate(args.Last(), true)); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan mode() aggregate"); } break; case None: if (args.Count == 1) { lvnFunc = new AggregateTerm(new NoneAggregate(args.First())); } else if (args.Count == 2 && args.First() is DistinctModifier) { lvnFunc = new AggregateTerm(new NoneAggregate(args.Last(), true)); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan none() aggregate"); } break; case NumericMax: if (args.Count == 1) { lvnFunc = new AggregateTerm(new NumericMaxAggregate(args.First())); } else if (args.Count == 2 && args.First() is DistinctModifier) { lvnFunc = new AggregateTerm(new NumericMaxAggregate(args.Last(), true)); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan nmax() aggregate"); } break; case NumericMin: if (args.Count == 1) { lvnFunc = new AggregateTerm(new NumericMinAggregate(args.First())); } else if (args.Count == 2 && args.First() is DistinctModifier) { lvnFunc = new AggregateTerm(new NumericMinAggregate(args.Last(), true)); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan nmin() aggregate"); } break; case Power: if (args.Count == 1) { lvnFunc = new SquareFunction(args.First()); } else if (args.Count == 2) { lvnFunc = new PowerFunction(args.First(), args.Last()); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan pow() function"); } break; case Pythagoras: if (args.Count == 2) { lvnFunc = new PythagoreanDistanceFunction(args.First(), args.Last()); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan pythagoras() function"); } break; case RadiansToDegrees: if (args.Count == 1) { lvnFunc = new RadiansToDegreesFunction(args.First()); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan radians-to-degrees() function"); } break; case Random: if (args.Count == 0) { lvnFunc = new RandomFunction(); } else if (args.Count == 1) { lvnFunc = new RandomFunction(args.First()); } else if (args.Count == 2) { lvnFunc = new RandomFunction(args.First(), args.Last()); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan rnd() function"); } break; case Reciprocal: if (args.Count == 1) { lvnFunc = new ReciprocalFunction(args.First()); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan reciprocal() function"); } break; case Root: if (args.Count == 1) { lvnFunc = new SquareRootFunction(args.First()); } else if (args.Count == 2) { lvnFunc = new RootFunction(args.First(), args.Last()); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan root() function"); } break; case Sha256Hash: if (args.Count == 1) { lvnFunc = new Sha256HashFunction(args.First()); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan sha256hash() function"); } break; case Square: if (args.Count == 1) { lvnFunc = new SquareFunction(args.First()); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan sq() function"); } break; case SquareRoot: if (args.Count == 1) { lvnFunc = new SquareRootFunction(args.First()); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan sqrt() function"); } break; case Ten: if (args.Count == 1) { lvnFunc = new TenFunction(args.First()); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan ten() function"); } break; case TrigCos: case TrigCosInv: if (args.Count == 1) { lvnFunc = new CosineFunction(args.First(), func.Equals(TrigCosInv)); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan " + func + "() function"); } break; case TrigCosec: case TrigCosecInv: if (args.Count == 1) { lvnFunc = new CosecantFunction(args.First(), func.Equals(TrigCosecInv)); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan " + func + "() function"); } break; case TrigCotan: case TrigCotanInv: if (args.Count == 1) { lvnFunc = new CotangentFunction(args.First(), func.Equals(TrigCotanInv)); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan " + func + "() function"); } break; case TrigSec: case TrigSecInv: if (args.Count == 1) { lvnFunc = new SecantFunction(args.First(), func.Equals(TrigSecInv)); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan " + func + "() function"); } break; case TrigSin: case TrigSinInv: if (args.Count == 1) { lvnFunc = new SineFunction(args.First(), func.Equals(TrigSinInv)); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan " + func + "() function"); } break; case TrigTan: case TrigTanInv: if (args.Count == 1) { lvnFunc = new TangentFunction(args.First(), func.Equals(TrigTanInv)); } else { throw new RdfParseException("Incorrect number of arguments for the Leviathan " + func + "() function"); } break; } if (lvnFunc != null) { expr = lvnFunc; return(true); } } expr = null; return(false); }