handsontable / handsontable/hyperformula

ODFF 1.3 Medium Group Evaluator requirements

Open
#62 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

ODFF Conformance ODFF MGE Verified
Dominant language
TypeScript
Stars
2.8k
Forks
171
Avg merge
1d 22h
Merged PRs (30d)
7

Description

Description

As a good extension to #61 the next major milestone should attempt to meet the Medium Group Evaluator requirements as described in section 2.3.3 of ODFF 1.3.

It extends #61 with a long list of additional functions (which are going to be implemented one way or another) and two important engine functionalities that we should focus on here:

  • B) It shall implement the Infix Operator Reference Union ("~") 6.4.13
  • C) It shall evaluate references with more than one area.
Requirements for Medium Group Evaluator

From ODFF 1.3:

  • A) It shall implement the following functions as defined in this specification:
    • ACCRINT 6.12.2
    • ACCRINTM 6.12.3
    • ACOSH 6.16.4
    • ACOT 6.16.5
    • ACOTH 6.16.6
    • ADDRESS 6.14.2
    • ASINH 6.16.8
    • ATANH 6.16.11
    • AVEDEV 6.18.2
    • BESSELI 6.16.12
    • BESSELJ 6.16.13
    • BESSELK 6.16.14
    • BESSELY 6.16.15
    • BETADIST 6.18.7
    • BETAINV 6.18.8
    • BINOMDIST 6.18.10
    • CEILING 6.17.1
    • CHAR 6.20.3
    • CLEAN 6.20.4
    • CODE 6.20.5
    • COLUMN 6.13.4
    • COMBIN 6.16.16
    • CONCATENATE 6.20.6
    • CONFIDENCE 6.18.16
    • CONVERT 6.16.18
    • CORREL 6.18.17
    • COSH 6.16.20
    • COT 6.16.21
    • COTH 6.16.22
    • COUPDAYBS 6.12.5
    • COUPDAYS 6.12.6
    • COUPDAYSNC 6.12.7
    • COUPNCD 6.12.7
    • COUPNUM 6.12.9
    • COUPPCD 6.12.10
    • COVAR 6.18.18
    • CRITBINOM 6.18.19
    • CUMIPMT 6.12.11
    • CUMPRINC 6.12.12
    • DATEVALUE 6.10.4
    • DAYS360 6.10.7
    • DB 6.12.13
    • DEVSQ 6.18.20
    • DISC 6.12.15
    • DOLLARDE 6.12.16
    • DOLLARFR 6.12.17
    • DURATION 6.12.18
    • EFFECT 6.12.19
    • EOMONTH 6.10.9
    • ERF 6.16.27
    • ERFC 6.16.28
    • EXPONDIST 6.18.21
    • FISHER 6.18.26
    • FISHERINV 6.18.27
    • FIXED 6.20.10
    • FLOOR 6.17.3
    • FORECAST 6.18.28
    • FTEST 6.18.30
    • GAMMADIST 6.18.31
    • GAMMAINV 6.18.32
    • GAMMALN 6.16.35
    • GCD 6.16.36
    • GEOMEAN 6.18.34
    • HARMEAN 6.18.36
    • HYPGEOMDIST 6.18.37
    • INTERCEPT 6.18.38
    • INTRATE 6.12.22
    • ISEVEN 6.13.17
    • ISODD 6.13.23
    • ISOWEEKNUM 6.10.11
    • KURT 6.18.39
    • LARGE 6.18.40
    • LCM 6.16.38
    • LEGACY.CHIDIST 6.18.11
    • LEGACY.CHIINV 6.18.13
    • LEGACY.CHITEST 6.18.15
    • LEGACY.FDIST 6.18.23
    • LEGACY.FINV 6.18.25
    • LEGACY.NORMSDIST 6.18.54
    • LEGACY.NORMSINV 6.18.55
    • LEGACY.TDIST 6.18.77
    • LINEST 6.18.41
    • LOGEST 6.18.42
    • LOGINV 6.18.43
    • LOGNORMDIST 6.18.44
    • LOOKUP 6.14.8
    • MDURATION 6.12.26
    • MEDIAN 6.18.47
    • MINVERSE 6.5.3
    • MIRR 6.12.27
    • MMULT 6.5.4
    • MODE 6.18.50
    • MROUND 6.17.4
    • MULTINOMIAL 6.16.43
    • NEGBINOMDIST 6.18.51
    • NETWORKDAYS 6.10.14
    • NOMINAL 6.12.28
    • ODDFPRICE 6.12.31
    • ODDFYIELD 6.12.32
    • ODDLPRICE 6.12.33
    • ODDLYIELD 6.12.34
    • OFFSET 6.14.11
    • PEARSON 6.18.56
    • PERCENTILE 6.18.57
    • PERCENTRANK 6.18.58
    • PERMUT 6.18.59
    • POISSON 6.18.62
    • PRICE 6.12.38
    • PRICEMAT 6.12.40
    • PROB 6.18.63
    • QUARTILE 6.18.64
    • QUOTIENT 6.16.48
    • RAND 6.16.50
    • RANDBETWEEN 6.16.51
    • RANK 6.18.65
    • RECEIVED 6.12.43
    • ROMAN 6.19.17
    • ROUNDDOWN 6.17.6
    • ROUNDUP 6.17.7
    • ROW 6.13.29
    • RSQ 6.18.66
    • SERIESSUM 6.16.53
    • SIGN 6.16.54
    • SINH 6.16.56
    • SKEW 6.18.67
    • SKEWP 6.18.68
    • SLOPE 6.18.69
    • SMALL 6.18.70
    • SQRTPI 6.16.59
    • STANDARDIZE 6.18.71
    • STDEVA 6.18.73
    • STDEVPA 6.18.75
    • STEYX 6.18.76
    • SUBTOTAL 6.16.60
    • SUMPRODUCT 6.16.64
    • SUMSQ 6.16.65
    • SUMX2MY2 6.16.66
    • SUMX2PY2 6.16.67
    • SUMXMY2 6.16.68
    • TANH 6.16.70
    • TBILLEQ 6.12.47
    • TBILLPRICE 6.12.48
    • TBILLYIELD 6.12.49
    • TIMEVALUE 6.10.18
    • TINV 6.18.78
    • TRANSPOSE 6.5.6
    • TREND 6.18.79
    • TRIMMEAN 6.18.80
    • TTEST 6.18.81
    • TYPE 6.13.33
    • VARA 6.18.83
    • VDB 6.12.50
    • WEEKNUM 6.10.21
    • WEIBULL 6.18.86
    • WORKDAY 6.10.22
    • XIRR 6.12.51
    • XNPV 6.12.52
    • YEARFRAC 6.10.24
    • YIELD 6.12.53
    • YIELDDISC 6.12.54
    • YIELDMAT 6.12.55
    • ZTEST 6.18.87
  • B) It shall implement the Infix Operator Reference Union ("~") 6.4.13
  • C) It shall evaluate references with more than one area.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading ODFF 1.3 section 2.3.3 and the related work in issue #61, then separate the remaining function requirements from the two evaluator-engine requirements. Done means implementing the listed missing functions, the reference-union operator (~), and evaluation of references containing more than one area, with behavior matching the ODFF requirements.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.