Skip to content

Conversation

DFrenkel
Copy link
Contributor

@DFrenkel DFrenkel commented May 6, 2025

Implement numbers.range and numbers.range_step builtins maintaining compatibility with Go version.

Resolves #6

@DFrenkel
Copy link
Contributor Author

DFrenkel commented May 6, 2025

Compliance suite results:

◇ Suite "Compliance Tests" started.
◇ Test testCompliance(tc:) started.
◇ Passing 1 argument tc → numbersrange/test-numbersrange-0256.json: numbersrange/one -> eval to testCompliance(tc:)
◇ Passing 1 argument tc → numbersrange/test-numbersrange-0257.json: numbersrange/ascending -> eval to testCompliance(tc:)
◇ Passing 1 argument tc → numbersrange/test-numbersrange-0259.json: numbersrange/precision -> eval to testCompliance(tc:)
◇ Passing 1 argument tc → numbersrange/test-numbersrange-0258.json: numbersrange/descending -> eval to testCompliance(tc:)
◇ Passing 1 argument tc → numbersrange/test-numbersrange-0258.json: numbersrange/descending (cheap optimization) -> eval to testCompliance(tc:)
◇ Passing 1 argument tc → numbersrange/test-numbersrange-0261.json: numbersrange/error: floating-point number pos 2 -> eval to testCompliance(tc:)
◇ Passing 1 argument tc → numbersrange/test-numbersrange-0260.json: numbersrange/error: floating-point number pos 1 -> eval to testCompliance(tc:)
◇ Passing 1 argument tc → numbersrangestep/test-numbersrangestep.json: numbersrangestep/ascending -> eval to testCompliance(tc:)
◇ Passing 1 argument tc → numbersrange/test-numbersrange-issue-7269.json: numbersrange/issue 7269 -> eval to testCompliance(tc:)
◇ Passing 1 argument tc → numbersrangestep/test-numbersrangestep.json: numbersrangestep/negative -> eval to testCompliance(tc:)
◇ Passing 1 argument tc → numbersrangestep/test-numbersrangestep.json: numbersrangestep/descending -> eval to testCompliance(tc:)
◇ Passing 1 argument tc → numbersrangestep/test-numbersrangestep.json: numbersrangestep/memoryexample -> eval to testCompliance(tc:)
◇ Passing 1 argument tc → numbersrangestep/test-numbersrangestep.json: numbersrangestep/descending (cheap optimization) -> eval to testCompliance(tc:)
◇ Passing 1 argument tc → numbersrangestep/test-numbersrangestep.json: numbersrangestep/equal -> eval to testCompliance(tc:)
◇ Passing 1 argument tc → numbersrangestep/test-numbersrangestep.json: numbersrangestep/notinrange -> eval to testCompliance(tc:)
	🧬 executing numbersrange/test-numbersrange-0256.json: numbersrange/one -> eval
	🧬 executing numbersrange/test-numbersrange-0258.json: numbersrange/descending (cheap optimization) -> eval
	🧬 executing numbersrangestep/test-numbersrangestep.json: numbersrangestep/ascending -> eval
	🧬 executing numbersrangestep/test-numbersrangestep.json: numbersrangestep/memoryexample -> eval
	🧬 executing numbersrange/test-numbersrange-0257.json: numbersrange/ascending -> eval
	🧬 executing numbersrange/test-numbersrange-0259.json: numbersrange/precision -> eval
	🧬 executing numbersrangestep/test-numbersrangestep.json: numbersrangestep/equal -> eval
	🧬 executing numbersrange/test-numbersrange-0258.json: numbersrange/descending -> eval
	🧬 executing numbersrange/test-numbersrange-issue-7269.json: numbersrange/issue 7269 -> eval
	🧬 executing numbersrangestep/test-numbersrangestep.json: numbersrangestep/descending -> eval
	🧬 executing numbersrange/test-numbersrange-0260.json: numbersrange/error: floating-point number pos 1 -> eval
	🧬 executing numbersrange/test-numbersrange-0261.json: numbersrange/error: floating-point number pos 2 -> eval
	🧬 executing numbersrangestep/test-numbersrangestep.json: numbersrangestep/negative -> eval
	🧬 executing numbersrangestep/test-numbersrangestep.json: numbersrangestep/notinrange -> eval
	🧬 executing numbersrangestep/test-numbersrangestep.json: numbersrangestep/descending (cheap optimization) -> eval
	✅ numbersrange/test-numbersrange-0260.json: numbersrange/error: floating-point number pos 1 -> eval
	✅ numbersrangestep/test-numbersrangestep.json: numbersrangestep/negative -> eval
	✅ numbersrange/test-numbersrange-0261.json: numbersrange/error: floating-point number pos 2 -> eval
	✅ numbersrange/test-numbersrange-issue-7269.json: numbersrange/issue 7269 -> eval
	✅ numbersrange/test-numbersrange-0258.json: numbersrange/descending -> eval
	✅ numbersrange/test-numbersrange-0258.json: numbersrange/descending (cheap optimization) -> eval
	✅ numbersrangestep/test-numbersrangestep.json: numbersrangestep/descending (cheap optimization) -> eval
	✅ numbersrangestep/test-numbersrangestep.json: numbersrangestep/memoryexample -> eval
	✅ numbersrange/test-numbersrange-0257.json: numbersrange/ascending -> eval
	✅ numbersrange/test-numbersrange-0256.json: numbersrange/one -> eval
	✅ numbersrangestep/test-numbersrangestep.json: numbersrangestep/descending -> eval
	✅ numbersrangestep/test-numbersrangestep.json: numbersrangestep/equal -> eval
	✅ numbersrangestep/test-numbersrangestep.json: numbersrangestep/ascending -> eval
	✅ numbersrangestep/test-numbersrangestep.json: numbersrangestep/notinrange -> eval
	✅ numbersrange/test-numbersrange-0259.json: numbersrange/precision -> eval
✔ Test testCompliance(tc:) passed after 0.012 seconds.
✔ Suite "Compliance Tests" passed after 0.012 seconds.
✔ Test run with 1 test passed after 0.016 seconds.

@DFrenkel DFrenkel marked this pull request as ready for review May 6, 2025 17:08
Implement numbers.range and numbers.range_step builtins maintaining compatibility with Go version.

Resolves open-policy-agent#6

Signed-off-by: Dmitry Frenkel <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

builtins: implement numbers.range and range_step
1 participant