Skip to content

New Concept Exercise: Freelancer Rates#88

Merged
marianfoo merged 12 commits into
exercism:mainfrom
marianfoo:concept-freelancer-rates
Jun 13, 2026
Merged

New Concept Exercise: Freelancer Rates#88
marianfoo merged 12 commits into
exercism:mainfrom
marianfoo:concept-freelancer-rates

Conversation

@marianfoo

@marianfoo marianfoo commented Mar 26, 2022

Copy link
Copy Markdown
Collaborator

This completes the existing draft for the Freelancer Rates concept exercise.

Summary

  • Added the missing numbers and arithmetic-operators concept documentation.
  • Updated config.json so both new concepts are registered and the learning path keeps lasagna before freelancer-rates.
  • Kept freelancer-rates as wip because configlet does not allow it to be user-facing while its basics prerequisite is only taught by the wip Lasagna exercise.
  • Reworked the exercise docs, hints, design notes, student stub, exemplar, and tests for ABAP.
  • Fixed the stale test expectations against the current canonical exercise behavior:
    • days_in_budget rounds down to a whole number.
    • monthly-discount prices round up to the canonical expected values.
    • day-rate decimal precision is not rounded away.

Source and history

The exercise is ported from the current JavaScript concept exercise:
https://github.com/exercism/javascript/tree/main/exercises/concept/freelancer-rates

PR history reviewed:

  • Original PR opened in 2022 from marianfoo:concept-freelancer-rates.
  • Later branch updates in 2022, 2023, and 2024 kept it mergeable.
  • The 2024 comment noted that the missing concepts were still not added.
  • GitHub search found no other open or closed ABAP PR implementing Freelancer Rates.

Validation

  • ./bin/configlet lint
  • npx -y @abaplint/cli@2.119.27 abaplint.json
  • npx -y @abaplint/cli@2.119.27 abaplint_solutions.json
  • ./bin/configlet sync --exercise freelancer-rates --filepaths --metadata --docs --tests include
  • Targeted Docker runner for freelancer-rates: 12/12 tests passed.
  • SAP arc-1 syntax check against ABAP release 758: passed for the final exemplar plus test class.

Standards cross-check:

  • freelancer-rates has the same concept exercise file layout as lasagna.
  • numbers and arithmetic-operators have the same concept documentation file layout as basics.
  • All new Markdown files start with the expected top-level headings.
  • The package/class abapGit XML files match the conventions used by the other exercises; the package description follows the dominant Exercism: <Name> pattern.

I also attempted a full-track bin/test run in a temporary copy on macOS after removing the GNU /usr/bin/time -f wrapper from that temp copy. It checked 50 exercise blocks; 36 passed. The failures were outside this PR, mostly from duplicate *.clas 2.abap files created only in the temporary copy and one existing collatz-conjecture exemplar issue. The actual checkout has no * 2* files.

@marianfoo marianfoo changed the title new conept: Freelancer Rates New Concept Exercise: Freelancer Rates Mar 26, 2022
@marianfoo marianfoo mentioned this pull request Apr 1, 2022
@mbtools

mbtools commented Apr 7, 2024

Copy link
Copy Markdown
Contributor

A little progress, but I don't have time to add the missing concepts. Oh well, someday

@marianfoo marianfoo marked this pull request as ready for review June 12, 2026 12:46
@marianfoo marianfoo requested review from larshp and mbtools June 12, 2026 12:56
@marianfoo

Copy link
Copy Markdown
Collaborator Author

Can anyone review so this PR can be finally merged :D

@mbtools mbtools left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

@marianfoo marianfoo merged commit c951343 into exercism:main Jun 13, 2026
4 checks passed
@marianfoo

Copy link
Copy Markdown
Collaborator Author

Cheers!

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.

3 participants