Repository navigation
Add GESTEP function (HF-481) - #1788
Open
marcin-kordas-hoc wants to merge 6 commits into
Open
marcin-kordas-hoc wants to merge 6 commits into
marcin-kordas-hoc wants to merge 6 commits into
Conversation
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
hyperformula-docs | 04c400c | Commit Preview URL Branch Preview URL |
Oct 08 2026, 04:26 AM |
Performance comparison of head (04c400c) vs base (3a9c34b) |
7 of 13 tasks
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Excel returns #VALUE! for a boolean and for the empty text in these functions and accepts numbers, dates, numeric text and empty cells. Verified in Excel Online for 57 formulas; the list-of-differences entry for GESTEP is no longer needed. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
marcin-kordas-hoc
force-pushed
the
feat/hf-481-gestep
branch
from
October 8, 2026 04:07
436379f to
1fd6d3f
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 1fd6d3f. Configure here.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #1788 +/- ##
===========================================
+ Coverage 97.26% 97.28% +0.02%
===========================================
Files 203 203
Lines 16022 16045 +23
Branches 3555 3561 +6
===========================================
+ Hits 15583 15610 +27
+ Misses 431 427 -4
Partials 8 8
🚀 New features to boost your workflow:
|
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Adds the
GESTEPfunction (HF-481).GESTEP(number, [step])returns1whennumber >= step, otherwise0.stepdefaults to0.DeltaPluginnext toDELTA, with a metadata catalogue entry, translations for all built-in languages (English names kept, as no localized name was confirmed) and a CHANGELOG entry.Also in this pull request: number literals with an uppercase exponent
src/parser/LexerConfig.tsmakes the number-literal pattern case-insensitive, so=1E5,=1E-300and=1.5E2parse. Before, only the lowercase1e5was accepted and the uppercase form was a parse error, although Excel accepts both (=GESTEP(-1E-300,0)was measured in Excel). The change applies to every formula; it is covered by a parser test (unit/parser/decimal.spec.ts) and recorded under Fixed in the CHANGELOG. It is in this pull request because the GESTEP tests use such literals; it can be split out if you prefer.Behaviour check against Excel
57 formulas for
GESTEPandDELTAwere evaluated in Excel Online (MS Graph live session) and in HyperFormula: 56 identical and 1 not evaluable in Excel (too many arguments, which Excel refuses to accept).Excel returns
#VALUE!for a boolean (a literal or a cell holdingTRUE/FALSE) and for the empty text""in these functions, and accepts numbers, dates, numeric text and empty cells (an empty cell is 0). HyperFormula used to convert booleans and""to numbers, forDELTAas well. Both functions now follow Excel, so this pull request also changes the existingDELTA:=DELTA(FALSE())was1and is now#VALUE!. It is recorded under Fixed in the CHANGELOG.Comparison is exact on both sides, as in Excel:
GESTEP(0.1+0.2, 0.3)is 1 andGESTEP(0.3, 0.1+0.2)is 0 (measured), and both are in the tests.Tests
Paired tests branch:
feat/hf-481-gestepin the tests repository (GESTEP and DELTA specs: 70 tests, plus a parser test). Full local run on this head: 503 suites, 6299 passed, 3 skipped.🤖 Generated with Claude Code
Note
Medium Risk
DELTA behavior change can break existing sheets that passed booleans or empty strings, and the lexer change affects parsing of all numeric literals project-wide.
Overview
Adds
GESTEP(number, [step]), returning1whennumber >= step(default step0) and0otherwise, wired throughDeltaPlugin, function metadata, license capabilities, and all language packs.DELTAargument handling now matches Excel: booleans and empty text""yield#VALUE!instead of being coerced to numbers; numeric text, dates, and empty cells still work. The second argument is validated first so its errors take precedence.The formula lexer now accepts uppercase scientific notation (e.g.
=1E5,=1E-3) via a case-insensitive exponent on number literals, fixing parse errors that lowercase-only parsing caused.Reviewed by Cursor Bugbot for commit 04c400c. Bugbot is set up for automated code reviews on this repo. Configure here.