Skip to content

CMAC2_COUNTER and four more antidumping macros run unmodified on Jenner - #4

Open
jenner-analytics wants to merge 1 commit into
slothbear:masterfrom
jenner-analytics:jenner-check/initial-bundles
Open

CMAC2_COUNTER and four more antidumping macros run unmodified on Jenner#4
jenner-analytics wants to merge 1 commit into
slothbear:masterfrom
jenner-analytics:jenner-check/initial-bundles

Conversation

@jenner-analytics

@jenner-analytics jenner-analytics commented Jul 11, 2026

Copy link
Copy Markdown

Jenneranalytics.com provides an API that runs SAS code, with support for more than 200 SAS procedures. You can also use it with AI assistants in a collaborative workspace. It's available for Mac on the Apple App Store, and by license for Windows and Linux.

We support the larger community by
(1) increasing access to SAS-compatible systems,
(2) by providing test coverage and a test coverage framework to public SAS repos in order to encourage the use of best practices in software engineering.

Your common-macros.sas runs on Jenner unmodified — this PR adds a small compatibility bundle so you can see for yourself. It's the test we wrote for your antidumping package, shared in case it's useful, and was assembled with AI assistance as is most code in modern businesses today.

Ten years of tracking Commerce's own antidumping calculation programs is a genuinely useful thing to have kept in sync — the commit history shows real care, like the 2022 change that deliberately dropped the detailed program listing from the README specifically to avoid it drifting out of sync with trade.gov (as happened once already with a home-market file rename). CMAC2_COUNTER, tucked into common-macros.sas, is a good example of the kind of small, sturdy utility that makes the rest of the pipeline auditable: a two-line PROC SQL wrapper that turns any dataset into a named macro variable count, called at every stage of the margin calculation so the log always shows how many observations survived each filter.

jenner-check/ contains five bundles, each pairing a macro from this repo with a small caller built from a realistic mock sales dataset:

jenner-check/
├── run_jenner.sh
├── README.md
├── t001_cmac2_counter/       # CMAC2_COUNTER (common-macros.sas)
├── t002_define_sale_date/    # DEFINE_SALE_DATE (common-macros.sas)
├── t003_unique_connums/      # UNIQUE_CONNUMS (nme-margin-calculation.sas)
├── t004_create_quarters/     # CREATE_QUARTERS (me-macros.sas)
└── t005_convert_to_usd/      # CONVERT_TO_USD (nme-margin-calculation.sas)

Check out this PR's branch and run from the repo root, then any bundle is one curl call away:

gh pr checkout 4
curl -sS --data-binary @jenner-check/t004_create_quarters/script.sas https://api.jenneranalytics.com/v1/quick

cd jenner-check && ./run_jenner.sh --all re-runs all five and checks each result against the pinned log/output snapshot captured when the bundle was built. The hosted API is free to try, no signup required; full reference at the docs.

Only the SAS source text of whatever script you run — autoexec.sas plus script.sas, nothing else — is sent to api.jenneranalytics.com, which runs it and returns the log and listing. No data files are read or uploaded, so anything sitting next to a script (or the COMPANY library paths these programs expect) stays on your machine; nothing is transmitted unless you run a command yourself.

Merge it, close it, or ignore it — no response expected either way, and we won't open further PRs on this repo. To opt out for good, leave no-more-prs in a comment here or open an issue titled jenner-check: opt out.


Lawrence W. Sinclair
CEO / Jenner Analytics Ltd
linkedin.com/in/lwsinclair/

Adds jenner-check/, five self-contained bundles exercising macros from
common-macros.sas, me-macros.sas, and nme-margin-calculation.sas against
mock antidumping sales data (CMAC2_COUNTER, DEFINE_SALE_DATE,
UNIQUE_CONNUMS, CREATE_QUARTERS, CONVERT_TO_USD), plus the run_jenner.sh
runner and its README. Nothing outside jenner-check/ is touched and
nothing runs on merge or checkout.
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.

1 participant