From df86115459fcd2f091089a7290b75f4934bea0bc Mon Sep 17 00:00:00 2001 From: Dmytro Kyshchenko Date: Thu, 8 Jun 2017 02:21:23 +0300 Subject: [PATCH] #190 --- xFunc.Maths/Analyzers/TypeAnalyzer.cs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/xFunc.Maths/Analyzers/TypeAnalyzer.cs b/xFunc.Maths/Analyzers/TypeAnalyzer.cs index ea0d3d728..456e6aaf0 100644 --- a/xFunc.Maths/Analyzers/TypeAnalyzer.cs +++ b/xFunc.Maths/Analyzers/TypeAnalyzer.cs @@ -53,7 +53,7 @@ private ResultType CheckTrigonometric(UnaryExpression exp) if (result == ResultType.ComplexNumber) return ResultType.ComplexNumber; - throw new ParameterTypeMismatchException(); + throw new ParameterTypeMismatchException(ResultType.Number | ResultType.ComplexNumber, result); } private ResultType CheckStatistical(DifferentParametersExpression exp) @@ -62,13 +62,19 @@ private ResultType CheckStatistical(DifferentParametersExpression exp) if (results == null || results.Contains(ResultType.Undefined)) return ResultType.Undefined; - if (results.Count == 1 && (results[0] == ResultType.Number || results[0] == ResultType.Vector)) - return ResultType.Number; + if (results.Count == 1) + { + if (results[0] == ResultType.Number || results[0] == ResultType.Vector) + return ResultType.Number; - if (results.All(x => x == ResultType.Number)) - return ResultType.Number; + throw new ParameterTypeMismatchException(); + } - throw new ParameterTypeMismatchException(); + for (var i = 0; i < results.Count; i++) + if (results[i] != ResultType.Number) + throw new ParameterTypeMismatchException(); + + return ResultType.Number; } #region Standard