示例#1
0
 ImageAdjustColorDialog(NEVariables variables)
 {
     Variables = variables;
     InitializeComponent();
     Expression = "1";
     Red        = Green = Blue = true;
 }
 FilesOperationsSplitFileDialog(NEVariables variables)
 {
     Variables = variables;
     InitializeComponent();
     OutputTemplate = @"$@""{directoryname(x)}\{filenamewithoutextension(x)}-{chunk}{extension(x)}""";
     ChunkSize      = "20 mb";
 }
示例#3
0
 NumericLimitDialog(NEVariables variables)
 {
     Variables = variables;
     InitializeComponent();
     Minimum = "xmin";
     Maximum = "xmax";
 }
		MakeAbsoluteDialog(NEVariables variables, bool getType)
		{
			Variables = variables;
			InitializeComponent();
			CheckType = getType;
			Expression = "f";
		}
示例#5
0
 NumericFloorRoundCeilingDialog(NEVariables variables)
 {
     Variables = variables;
     InitializeComponent();
     BaseValue = "0";
     Interval  = "1";
 }
示例#6
0
        FilesSetTimeDialog(NEVariables variables, string expression)
        {
            InitializeComponent();

            Variables  = variables;
            Expression = expression;
        }
示例#7
0
		RandomDataDialog(NEVariables variables)
		{
			Variables = variables;
			InitializeComponent();
			Chars = "a-zA-Z";
			Expression = "x";
		}
示例#8
0
        FilesFindMassFindDialog(NEVariables variables)
        {
            InitializeComponent();

            Variables          = variables;
            EncodingCheckBoxes = new ObservableCollection <CodePageCheckBox>(Coder.GetStringCodePages().Select(codePage => new CodePageCheckBox {
                CodePage = codePage
            }));
            checkBoxes = this.FindLogicalChildren <CodePageCheckBox>().Concat(EncodingCheckBoxes).ToList();
            codePages.PreviewKeyDown += (s, e) =>
            {
                if (e.Key == Key.Space)
                {
                    var selected = codePages.SelectedItems.Cast <CodePageCheckBox>().ToList();
                    var status   = !selected.All(item => item.IsChecked == true);
                    selected.ForEach(item => item.IsChecked = status);
                    e.Handled = true;
                }
            };

            Expression = expression.GetLastSuggestion().CoalesceNullOrEmpty("k");

            ShowLE    = savedShowLE;
            ShowBE    = savedShowBE;
            ShowInt   = savedShowInt;
            ShowFloat = savedShowFloat;
            ShowStr   = savedShowStr;
            MatchCase = savedMatchCase;
            foreach (var checkBox in checkBoxes)
            {
                checkBox.IsChecked = savedCodePages.Contains(checkBox.CodePage);
            }
        }
 NumericScaleDialog(NEVariables variables)
 {
     Variables = variables;
     InitializeComponent();
     PrevMin = NewMin = "xmin";
     PrevMax = NewMax = "xmax";
 }
 TextRandomTextDialog(NEVariables variables)
 {
     Variables = variables;
     InitializeComponent();
     Chars      = "a-zA-Z";
     Expression = "x";
 }
 SelectSplitDialog(NEVariables variables)
 {
     Variables = variables;
     InitializeComponent();
     Reset();
     Text = ",";
 }
示例#12
0
 ImageAddOverlayColorDialog(bool add, NEVariables variables)
 {
     Title     = $"{(add ? "Add" : "Overlay")} Colors";
     Variables = variables;
     InitializeComponent();
     Expression = "c";
 }
 ImageGIFAnimateDialog(NEVariables variables)
 {
     Variables = variables;
     InitializeComponent();
     InputFiles = OutputFile = "x";
     Delay      = "100 ms";
     Repeat     = "0";
 }
示例#14
0
		GetExpressionDialog(NEVariables variables, int? numRows)
		{
			InitializeComponent();

			Expression = "x";
			Variables = variables;
			NumRows = numRows;
		}
示例#15
0
        ImageCropDialog(NEVariables variables)
        {
            Variables = variables;

            InitializeComponent();

            OnResetClick();
        }
示例#16
0
		AddColumnDialog(NEVariables variables, int numRows)
		{
			InitializeComponent();

			Expression = "y";
			Variables = variables;
			NumRows = numRows;
		}
示例#17
0
        NumericRandomNumberDialog(NEVariables variables)
        {
            Variables = variables;
            InitializeComponent();

            MinValue = "1";
            MaxValue = "1000";
        }
示例#18
0
		GotoDialog(GotoType gotoType, int value, NEVariables variables)
		{
			Variables = variables;
			InitializeComponent();

			Title = $"Go To {gotoType}";
			Expression = value.ToString();
		}
示例#19
0
		public static Result Run(Window parent, NEVariables variables)
		{
			var dialog = new RotateDialog(variables) { Owner = parent };
			if (!dialog.ShowDialog())
				return null;

			return dialog.result;
		}
示例#20
0
		public static Result Run(Window parent, int numSels, NEVariables variables)
		{
			var dialog = new LimitDialog(numSels, variables) { Owner = parent };
			if (!dialog.ShowDialog())
				return null;

			return dialog.result;
		}
        GetExpressionDialog(NEVariables variables, int?numRows)
        {
            InitializeComponent();

            Expression = "x";
            Variables  = variables;
            NumRows    = numRows;
        }
示例#22
0
		RepeatDialog(bool selectRepetitions, NEVariables variables)
		{
			Variables = variables;
			InitializeComponent();

			Expression = "1";
			SelectRepetitions = selectRepetitions;
		}
        EditRepeatDialog(bool selectRepetitions, NEVariables variables)
        {
            Variables = variables;
            InitializeComponent();

            Expression        = "1";
            SelectRepetitions = selectRepetitions;
        }
        TableAddColumnDialog(NEVariables variables, int numRows)
        {
            InitializeComponent();

            Expression = "y";
            Variables  = variables;
            NumRows    = numRows;
        }
示例#25
0
 FilesOperationsCombineFilesDialog(NEVariables variables)
 {
     Variables = variables;
     InitializeComponent();
     InputFiles     = "x";
     InputFileCount = "xn";
     OutputFiles    = @"$@""{directoryname(xtmin)}\{filenamewithoutextension(xtmin)}-Combine{extension(xtmin)}""";
 }
示例#26
0
        ImageRotateDialog(NEVariables variables)
        {
            Variables = variables;

            InitializeComponent();

            AngleExpression = "0 deg";
        }
示例#27
0
 FilesNamesMakeAbsoluteRelativeDialog(NEVariables variables, bool absolute, bool checkType)
 {
     Variables = variables;
     InitializeComponent();
     Title      = $"Make {(absolute ? "Absolute" : "Relative")}";
     CheckType  = checkType;
     Expression = "f";
 }
示例#28
0
		CopyMoveFilesDialog(NEVariables variables, bool move)
		{
			Variables = variables;
			InitializeComponent();

			Title = move ? "Move Files" : "Copy Files";

			OldFileName = NewFileName = "x";
		}
        static public Result Run(Window parent, NEVariables variables)
        {
            var dialog = new FilesOperationsSplitFileDialog(variables)
            {
                Owner = parent
            };

            return(dialog.ShowDialog() ? dialog.result : null);
        }
        public static Result Run(Window parent, NEVariables variables, Coder.CodePage codePage)
        {
            var dialog = new FilesCreateFromExpressionsDialog(variables, codePage)
            {
                Owner = parent
            };

            return(dialog.ShowDialog() ? dialog.result : null);
        }
示例#31
0
        static public Result Run(Window parent, NEVariables variables)
        {
            var dialog = new NumericRandomNumberDialog(variables)
            {
                Owner = parent
            };

            return(dialog.ShowDialog() ? dialog.result : null);
        }
        public static Result Run(Window parent, bool numeric, bool isSelect, NEVariables variables)
        {
            var dialog = new TextWidthDialog(numeric, isSelect, variables)
            {
                Owner = parent
            };

            return(dialog.ShowDialog() ? dialog.result : null);
        }
示例#33
0
        static public Result Run(Window parent, NEVariables variables)
        {
            var dialog = new ImageGrabImageDialog(variables)
            {
                Owner = parent
            };

            return(dialog.ShowDialog() ? dialog.result : null);
        }
        PositionGotoDialog(GotoType gotoType, int value, NEVariables variables)
        {
            Variables = variables;
            InitializeComponent();

            Title         = $"Go To {gotoType}";
            Expression    = value.ToString();
            OpenFilesOnce = true;
        }
        static public Result Run(Window parent, NEVariables variables, int?numRows = null)
        {
            var dialog = new GetExpressionDialog(variables, numRows)
            {
                Owner = parent
            };

            return(dialog.ShowDialog() ? dialog.result : null);
        }
        public static Result Run(Window parent, GotoType gotoType, int startValue, NEVariables variables)
        {
            var dialog = new PositionGotoDialog(gotoType, startValue, variables)
            {
                Owner = parent
            };

            return(dialog.ShowDialog() ? dialog.result : null);
        }
示例#37
0
        public static Result Run(Window parent, NEVariables variables)
        {
            var dialog = new FilesFindMassFindDialog(variables)
            {
                Owner = parent
            };

            return(dialog.ShowDialog() ? dialog.result : null);
        }
        public static Result Run(Window parent, NEVariables variables, bool move)
        {
            var dialog = new FilesOperationsCopyMoveDialog(variables, move)
            {
                Owner = parent
            };

            return(dialog.ShowDialog() ? dialog.result : null);
        }
        FilesOperationsCopyMoveDialog(NEVariables variables, bool move)
        {
            Variables = variables;
            InitializeComponent();

            Title = move ? "Move Files" : "Copy Files";

            OldFileName = NewFileName = "x";
        }
示例#40
0
		LimitDialog(int maxSels, NEVariables variables)
		{
			Variables = variables;
			InitializeComponent();

			FirstSel = "1";
			SelMult = "1";
			NumSels = maxSels.ToString();
			JoinSels = false;
		}
示例#41
0
		MassFindDialog(string text, bool selectionOnly, NEVariables variables)
		{
			InitializeComponent();

			Text = text.CoalesceNullOrEmpty(this.text.GetLastSuggestion(), "");
			MatchCase = matchCaseVal;
			KeepMatching = keepMatchingVal;
			RemoveMatching = removeMatchingVal;
			SelectionOnly = selectionOnly;
			Variables = variables;
		}
示例#42
0
		CreateFilesDialog(NEVariables variables, Coder.CodePage defaultCodePage)
		{
			Variables = variables;
			InitializeComponent();

			FileName = Data = "x";
			CodePage = defaultCodePage;

			codePage.ItemsSource = Coder.GetAllCodePages().ToDictionary(page => page, page => Coder.GetDescription(page));
			codePage.SelectedValuePath = "Key";
			codePage.DisplayMemberPath = "Value";
		}
示例#43
0
		WidthDialog(bool numeric, bool isSelect, NEVariables variables)
		{
			Variables = variables;
			InitializeComponent();

			padChar.GotFocus += (s, e) => padChar.SelectAll();

			IsSelect = isSelect;

			Expression = "max(len([x]))";
			if (numeric)
				NumericClick(null, null);
			else
				StringClick(null, null);
		}
示例#44
0
		public static Result Run(Window parent, NEVariables variables, Coder.CodePage codePage)
		{
			var dialog = new CreateFilesDialog(variables, codePage) { Owner = parent };
			return dialog.ShowDialog() ? dialog.result : null;
		}
示例#45
0
		public static Result Run(Window parent, NEVariables variables, bool move)
		{
			var dialog = new CopyMoveFilesDialog(variables, move) { Owner = parent };
			return dialog.ShowDialog() ? dialog.result : null;
		}
示例#46
0
		static public Result Run(Window parent, string text, bool selectionOnly, NEVariables variables)
		{
			var dialog = new MassFindDialog(text, selectionOnly, variables) { Owner = parent };
			return dialog.ShowDialog() ? dialog.result : null;
		}
示例#47
0
		public void ExpressionTest()
		{
			Assert.AreEqual("1125899906842624", new NEExpression("2^50").Evaluate().ToString());

			Assert.AreEqual("4", new NEExpression("-(-4)").Evaluate().ToString());

			Assert.AreEqual("4", new NEExpression("2 + 2").Evaluate().ToString());
			Assert.AreEqual("7.1", new NEExpression("5.1 + 2").Evaluate().ToString());
			Assert.AreEqual("5.1", new NEExpression("5 + .1").Evaluate().ToString());
			Assert.AreEqual("5", new NEExpression("4.9 + .1").Evaluate().ToString());
			Assert.AreEqual("5.2", new NEExpression("5.1 + .1").Evaluate().ToString());
			Assert.AreEqual("bcd", new NEExpression("\"abc\" t++ 1").Evaluate().ToString());
			Assert.AreEqual("a1", new NEExpression("\"a\" t+ 1").Evaluate().ToString());

			Assert.AreEqual("0", new NEExpression("2 - 2").Evaluate().ToString());
			Assert.AreEqual("3.1", new NEExpression("5.1 - 2").Evaluate().ToString());
			Assert.AreEqual("4.9", new NEExpression("5 - .1").Evaluate().ToString());
			Assert.AreEqual("4.8", new NEExpression("4.9 - .1").Evaluate().ToString());
			Assert.AreEqual("5", new NEExpression("5.1 - .1").Evaluate().ToString());
			Assert.AreEqual("a", new NEExpression("\"b\" t-- 1").Evaluate().ToString());

			Assert.AreEqual("10.8", new NEExpression("5.4 * 2").Evaluate().ToString());
			Assert.AreEqual("10.5", new NEExpression("5 * 2.1").Evaluate().ToString());
			Assert.AreEqual("okokokok", new NEExpression("\"ok\" t* 4").Evaluate().ToString());
			Assert.AreEqual("oooo", new NEExpression("\"o\" t* 4").Evaluate().ToString());

			Assert.AreEqual("2.5", new NEExpression("5 / 2").Evaluate().ToString());
			Assert.AreEqual("2", new NEExpression("5 // 2").Evaluate().ToString());
			Assert.AreEqual("2.5", new NEExpression("5.0 / 2").Evaluate().ToString());
			Assert.AreEqual("2.5", new NEExpression("5 / 2.0").Evaluate().ToString());

			Assert.AreEqual("64", new NEExpression("4 ^ 3").Evaluate().ToString());
			Assert.AreEqual("4", new NEExpression("64 ^ (1 / 3.0)").Evaluate().ToString());
			Assert.AreEqual("4.5", new NEExpression("410.0625 ^ .25").Evaluate().ToString());

			Assert.AreEqual("8", new NEExpression("2 << 2").Evaluate().ToString());
			Assert.AreEqual("1024", new NEExpression("1048576 >> 10").Evaluate().ToString());

			Assert.AreEqual("-3735928560", new NEExpression("~[0]").Evaluate(0xdeadbeef).ToString());
			Assert.AreEqual("179154957", new NEExpression("&").Evaluate(0xdeadbeef, 0x0badf00d).ToString());
			Assert.AreEqual("3573567202", new NEExpression("^^").Evaluate(0xdeadbeef, 0x0badf00d).ToString());
			Assert.AreEqual("3752722159", new NEExpression("|").Evaluate(0xdeadbeef, 0x0badf00d).ToString());

			Assert.AreEqual(true, new NEExpression("TRUE").Evaluate());
			Assert.AreEqual(false, new NEExpression("False").Evaluate());

			Assert.AreEqual("7.1", new NEExpression("5.0 + 2.1").Evaluate().ToString());
			Assert.AreEqual("14.1", new NEExpression("3.6 + 2.1 * 5.0").Evaluate().ToString());
			Assert.AreEqual("28.5", new NEExpression("(3.6 + 2.1) * 5.0").Evaluate().ToString());
			Assert.AreEqual("12.1", new NEExpression("[0] + [1]").Evaluate(5.4, 6.7).ToString());

			Assert.AreEqual(true, new NEExpression("[0] is \"Int32\"").Evaluate(5));

			Assert.AreEqual(true, new NEExpression("\"5a\" t== \"5a\"").Evaluate());
			Assert.AreEqual(false, new NEExpression("\"5a\" t== \"5A\"").Evaluate());
			Assert.AreEqual(true, new NEExpression("\"5a\" ti== \"5a\"").Evaluate());
			Assert.AreEqual(true, new NEExpression("\"5a\" ti== \"5A\"").Evaluate());
			Assert.AreEqual(false, new NEExpression("\"5a\" t!= \"5a\"").Evaluate());
			Assert.AreEqual(true, new NEExpression("\"5a\" t!= \"5A\"").Evaluate());
			Assert.AreEqual(false, new NEExpression("\"5a\" ti!= \"5a\"").Evaluate());
			Assert.AreEqual(false, new NEExpression("\"5a\" ti!= \"5A\"").Evaluate());

			Assert.AreEqual("5", new NEExpression("[0].\"value\"").Evaluate(new ExpressionDotTest(5)).ToString());

			Assert.AreEqual(typeof(ExpressionDotTest).FullName, new NEExpression("Type([0]).\"FullName\"").Evaluate(new ExpressionDotTest(5)).ToString());

			Assert.AreEqual(true, new NEExpression("ValidRE([0])").Evaluate(@"\d+"));
			Assert.AreEqual(false, new NEExpression("ValidRE([0])").Evaluate(@"["));

			Assert.AreEqual("15.5", new NEExpression("+").Evaluate(1, 2, 3, 4, 5.5).ToString());
			Assert.AreEqual(true, new NEExpression("||").Evaluate(false, false, true, false));
			Assert.AreEqual("120", new NEExpression("*").Evaluate(4, 5, 6).ToString());

			Assert.AreEqual("5", new NEExpression("([0] || [1]) ? [2] : [3]").Evaluate(false, true, 5, 6).ToString());

			Assert.AreEqual("ICanJoinStrings", new NEExpression("t+").Evaluate("I", "Can", null, "Join", "Strings").ToString());

			Assert.AreEqual("a\\\'\"\0\a\b\f\n\r\t\v\x1\x12\x123\x1234\u1234\U00001234\U0001d161", new NEExpression(@"""a"" t+ ""\\"" t+ ""\'"" t+ ""\"""" t+ ""\0"" t+ ""\a"" t+ ""\b"" t+ ""\f"" t+ ""\n"" t+ ""\r"" t+ ""\t"" t+ ""\v"" t+ ""\x1"" t+ ""\x12"" t+ ""\x123"" t+ ""\x1234"" t+ ""\u1234"" t+ ""\U00001234"" t+ ""\U0001d161""").Evaluate().ToString());
			Assert.AreEqual("", new NEExpression("\"\"").Evaluate().ToString());
			Assert.AreEqual(" Slash: \\ Quote: \' Double: \" Null: \0 Alert: \a Backspace: \b Form feed: \f New line: \n Carriage return:\r Tab: \t Vertical quote: \v Hex1: \x1 Hex2: \x12 Hex3: \x123 Hex4: \x1234 Unicode4: \u1234 Unicode8: \U00001234 Unicode8: \U0001d161 ", new NEExpression(@""" Slash: \\ Quote: \' Double: \"" Null: \0 Alert: \a Backspace: \b Form feed: \f New line: \n Carriage return:\r Tab: \t Vertical quote: \v Hex1: \x1 Hex2: \x12 Hex3: \x123 Hex4: \x1234 Unicode4: \u1234 Unicode8: \U00001234 Unicode8: \U0001d161 """).Evaluate().ToString());
			Assert.AreEqual("", new NEExpression("@\"\"").Evaluate().ToString());
			Assert.AreEqual(@"This \is "" my string", new NEExpression(@"@""This \is """" my string""").Evaluate().ToString());
			Assert.AreEqual("", new NEExpression("$\"\"").Evaluate().ToString());
			Assert.AreEqual("{2 + 2 = 4}\r\n", new NEExpression(@"$""{{\u0032 + 2 = {2 + 2}}}\r\n""").Evaluate().ToString());
			Assert.AreEqual(@"\n ""{2 + 2} \= 4"" \n", new NEExpression(@"@$""\n """"{{2 + 2}} \= {2 + 2}"""" \n""").Evaluate().ToString());
			Assert.AreEqual(@"\n ""{2 + 2} \= 4"" \n", new NEExpression(@"$@""\n """"{{2 + 2}} \= {2 + 2}"""" \n""").Evaluate().ToString());
			Assert.AreEqual("", new NEExpression("@$\"\"").Evaluate().ToString());
			Assert.AreEqual("", new NEExpression("$@\"\"").Evaluate().ToString());

			Assert.AreEqual("[0]5+7 is 12", new NEExpression("StrFormat(\"[0]{0}+{1} is {2}\", [0], [1], [0] + [1])").Evaluate(5, 7).ToString());

			Assert.AreEqual("Test", new NEExpression("StrFormat(\"Test\")").Evaluate().ToString());
			Assert.AreEqual("Test 5", new NEExpression("StrFormat(\"Test {0}\", 5)").Evaluate().ToString());
			Assert.AreEqual("Test 5 7", new NEExpression("StrFormat(\"Test {0} {1}\", 5, 7)").Evaluate().ToString());

			Assert.AreEqual(false, new NEExpression("!true").Evaluate());
			Assert.AreEqual(true, new NEExpression("![0]").Evaluate(false));
			Assert.AreEqual("-4", new NEExpression("-4").Evaluate().ToString());

			Assert.AreEqual(typeof(byte), new NEExpression("Type([0])").Evaluate((byte)0));

			Assert.AreEqual("3931877116", new NEExpression("0xdeadbeef + [0]").Evaluate(0x0badf00d).ToString());

			Assert.AreEqual("2", new NEExpression("Min(3,4,2)").Evaluate().ToString());
			Assert.AreEqual("4", new NEExpression("Max(3,4,2)").Evaluate().ToString());

			Assert.AreEqual("16", new NEExpression("len(\"1125899906842624\")").Evaluate().ToString());
			Assert.AreEqual("16,3,4", new NEExpression("len(\"1125899906842624\", 123, \"Test\")").Evaluate().ToString());
			Assert.AreEqual("3", new NEExpression("min(len(\"1125899906842624\", 123, \"Test\"))").Evaluate().ToString());

			Assert.AreEqual("8", new NEExpression("multiple(8,8)").Evaluate().ToString());
			Assert.AreEqual("16", new NEExpression("multiple(9,8)").Evaluate().ToString());
			Assert.AreEqual("8.4", new NEExpression("multiple(1.1,8.4)").Evaluate().ToString());
			Assert.AreEqual("16.8", new NEExpression("multiple(9.5,8.4)").Evaluate().ToString());
			Assert.AreEqual("3 foot", new NEExpression("multiple(30 in,1 foot)").Evaluate().ToString());

			Assert.AreEqual("3.14159265358979", new NEExpression("pi").Evaluate().ToString());
			Assert.AreEqual("2.71828182845905", new NEExpression("e").Evaluate().ToString());

			Assert.AreEqual("120", new NEExpression("5!").Evaluate().ToString());

			Assert.AreEqual("Four hundred eleven billion forty five thousand three hundred twelve", new NEExpression("towords(411000045312)").Evaluate().ToString());
			Assert.AreEqual("Zero", new NEExpression("towords(0)").Evaluate().ToString());
			Assert.AreEqual("Negative five", new NEExpression("towords(-5)").Evaluate().ToString());

			Assert.AreEqual("554212019", new NEExpression("fromwords(\" five -hundred-fifty-four		 million, two hundred twelve thousand, nineteen  \")").Evaluate().ToString());
			Assert.AreEqual("5110000", new NEExpression("fromwords(\"5.11 million\")").Evaluate().ToString());
			Assert.AreEqual("411000045312", new NEExpression("fromwords(\"Four hundred eleven billion forty five thousand three hundred twelve\")").Evaluate().ToString());
			Assert.AreEqual("0", new NEExpression("fromwords(\"Zero\")").Evaluate().ToString());
			Assert.AreEqual("-5", new NEExpression("fromwords(\"Negative five\")").Evaluate().ToString());

			Assert.AreEqual("5", new NEExpression("gcf(30,20,15)").Evaluate().ToString());
			Assert.AreEqual("60", new NEExpression("lcm(30,20,15)").Evaluate().ToString());
			Assert.AreEqual("1/5", new NEExpression("reduce(20,100)").Evaluate().ToString());

			Assert.AreEqual("11 m/s", new NEExpression("5.5 m/(s^2)/s*s *  2 s").Evaluate().ToString());
			Assert.AreEqual("1440 minutes", new NEExpression("1 day => minutes").Evaluate().ToString());
			Assert.AreEqual("17168.481792 m^2", new NEExpression("5 miles * 7 feet => m^2").Evaluate().ToString());
			Assert.AreEqual("5 cm^3", new NEExpression("5 ml => cm^3").Evaluate().ToString());
			Assert.AreEqual("5280 feet", new NEExpression("1 mile => feet").Evaluate().ToString());
			Assert.AreEqual("147197952000 feet^3", new NEExpression("1 mile^3 => feet^3").Evaluate().ToString());
			Assert.AreEqual("328.15 K", new NEExpression("55 degc => K").Evaluate().ToString());
			Assert.AreEqual("55 degc", new NEExpression("328.15 K => degc").Evaluate().ToString());
			Assert.AreEqual("15 degc", new NEExpression("59 degf => degc").Evaluate().ToString());
			Assert.AreEqual("59 degf", new NEExpression("15 degc => degf").Evaluate().ToString());
			Assert.AreEqual("26 in", new NEExpression("2 in + 2 ft").Evaluate().ToString());
			Assert.AreEqual(true, new NEExpression("5 km = 5000000 mm").Evaluate());
			Assert.AreEqual("5000 kg*m^2/s^2", new NEExpression("5 kJ => SI").Evaluate().ToString());
			Assert.AreEqual("1E-06 m^3", new NEExpression("1 mL => SI").Evaluate().ToString());
			Assert.AreEqual("1000000 s^-1", new NEExpression("1 MHz => SI").Evaluate().ToString());
			Assert.AreEqual("10 W", new NEExpression("10 J/s => Simple").Evaluate().ToString());
			Assert.AreEqual("25 $/lessons", new NEExpression("1000$ / 40 lessons").Evaluate().ToString());

			Assert.AreEqual("-1", new NEExpression("cos(pi)").Evaluate().ToString());
			Assert.AreEqual("-1", new NEExpression("cos(pi rad)").Evaluate().ToString());
			Assert.AreEqual("-1", new NEExpression("cos(180 deg)").Evaluate().ToString());

			Assert.AreEqual("3.14159265358979 rad", new NEExpression("acos(-1)").Evaluate().ToString());
			Assert.AreEqual("180 deg", new NEExpression("acos(-1) => deg").Evaluate().ToString());

			Assert.AreEqual("0", new NEExpression("factor(0)").Evaluate().ToString());
			Assert.AreEqual("-1*2*2*3*5*7*11", new NEExpression("factor(-4620)").Evaluate().ToString());

			Assert.AreEqual(true, new NEExpression("valideval(\"(5+2)\")").Evaluate());
			Assert.AreEqual(false, new NEExpression("valideval(\"(5+)2\")").Evaluate());

			var values = new NEExpression("random(2,10)").EvaluateRows<int>(null, 1000).Distinct().OrderBy().ToList();
			Assert.IsTrue(values.Count == 9);

			var miscVars = new NEVariables(
				NEVariable.Constant("x", "", 0xdeadbeef),
				NEVariable.Constant("y", "", 0x0badf00d),
				NEVariable.Constant("z", "", 0x0defaced)
			);
			var expr = new NEExpression("x - y + [0]");
			var vars = expr.Variables;
			Assert.AreEqual(2, vars.Count);
			Assert.IsTrue(vars.Contains("x"));
			Assert.IsTrue(vars.Contains("y"));
			Assert.AreEqual("7816989104", expr.EvaluateRow(miscVars, 0xfeedface).ToString());

			var listVars = new NEVariables(NEVariable.List("y", "", () => new List<string> { "12", "-13.1", "-13", "9", "0.0001" }));
			Assert.AreEqual("5", new NEExpression("count([y])").EvaluateRow(listVars).ToString());
			Assert.AreEqual("-13.1", new NEExpression("min([y])").EvaluateRow(listVars).ToString());
			Assert.AreEqual("12", new NEExpression("max([y])").EvaluateRow(listVars).ToString());
			Assert.AreEqual("0.0001", new NEExpression("tmin([y])").EvaluateRow(listVars).ToString());
			Assert.AreEqual("9", new NEExpression("tmax([y])").EvaluateRow(listVars).ToString());
			Assert.AreEqual("-5.0999", new NEExpression("sum([y])").EvaluateRow(listVars).ToString());

			CheckDates();
		}
示例#48
0
		public static Result Run(Window parent, bool numeric, bool isSelect, NEVariables variables)
		{
			var dialog = new WidthDialog(numeric, isSelect, variables) { Owner = parent };
			return dialog.ShowDialog() ? dialog.result : null;
		}
示例#49
0
		static public Result Run(Window parent, NEVariables variables, int? numRows = null)
		{
			var dialog = new GetExpressionDialog(variables, numRows) { Owner = parent };
			return dialog.ShowDialog() ? dialog.result : null;
		}
		public static void Run(NEVariables variables = null) => new ExpressionHelpVariablesDialog(variables).ShowDialog();
示例#51
0
		static public Result Run(Window parent, NEVariables variables, int numRows)
		{
			var dialog = new AddColumnDialog(variables, numRows) { Owner = parent };
			return dialog.ShowDialog() ? dialog.result : null;
		}
示例#52
0
		RotateDialog(NEVariables variables)
		{
			Variables = variables;
			InitializeComponent();
			Count = "1";
		}
		ExpressionHelpVariablesDialog(NEVariables variables)
		{
			InitializeComponent();
			Variables = variables;
		}
		ExpressionHelpDialog(NEVariables variables = null)
		{
			Variables = variables;
			InitializeComponent();
			ShowVariables.IsEnabled = variables != null;
		}
示例#55
0
		public static Result Run(NEVariables variables, Window parent)
		{
			var dialog = new RandomDataDialog(variables) { Owner = parent };
			return dialog.ShowDialog() ? dialog.result : null;
		}
示例#56
0
		string EvalExpression(string expression)
		{
			if (!expressions.ContainsKey(expression))
				expressions[expression] = new NEExpression(expression);
			var variables = new NEVariables(values.Select(value => NEVariable.Constant(value.Key, "", value.Value)));
			return expressions[expression].EvaluateRow(variables).ToString();
		}
示例#57
0
		public static Result Run(Window parent, GotoType gotoType, int startValue, NEVariables variables)
		{
			var dialog = new GotoDialog(gotoType, startValue, variables) { Owner = parent };
			return dialog.ShowDialog() ? dialog.result : null;
		}
		public static void Display(NEVariables variables = null) => new ExpressionHelpDialog(variables);
示例#59
0
		public static Result Run(Window parent, NEVariables variables, bool getType)
		{
			var dialog = new MakeAbsoluteDialog(variables, getType) { Owner = parent };
			return dialog.ShowDialog() ? dialog.result : null;
		}
示例#60
0
		static public Result Run(Window parent, bool selectRepetitions, NEVariables variables)
		{
			var dialog = new RepeatDialog(selectRepetitions, variables) { Owner = parent };
			return dialog.ShowDialog() ? dialog.result : null;
		}