Repository navigation
6.1: VIN, MAC, UUID v7, pattern codes, coordinates and EORI - #16
Merged
Merged
Conversation
The VIN carries the North American check digit at position nine, transliteration table and weights per standard, calibrated against the classic example with the X check digit and the all ones number; the model year position leaves out U, Z and zero. The MAC address is a universally administered unicast by default, and TestMacAddressSource sets the locally administered bit, the space IEEE 802 keeps free of manufacturer assignments, so those addresses provably name no vendor hardware. GuidV7Source builds RFC 9562 version 7 UUIDs whose 48 timestamp bits come from a seeded range instead of the clock, so a seed reproduces the same UUIDs on every run; version and variant bits are correct and the encoded instant stays inside the range. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
An SKU, a serial number and a lot number follow no public standard, so instead of pretending one exists they run on a small pattern engine: a hash becomes a digit, an at sign a capital letter, a star one of both, a backslash escapes, everything else stays literal. PatternSource exposes that engine directly, SkuSource defaults to three letters, hyphen and five digits, SerialNumberSource to four blocks of four characters, and LotNumberSource stamps the widespread date code of two digit year plus day of the year, drawn from a seeded date range instead of the clock, before its suffix pattern. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Decimal degrees drawn uniformly between two bounds that have to stay on the globe, the whole world by default, a bounding box via the constructor. The two members of an object are drawn independently, which the documentation says openly: the pair lies inside the box, a meaningful place needs Impose. The README and the release notes now cover the whole batch: VIN, MAC, UUID v7, the pattern engine with SKU, serial and lot numbers, and the coordinates. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The EORI format of Annex 12-01 UCC IA carries no check digit of its own, so realism comes from the national part: the Belgian enterprise number with its mod 97 pair, the Danish CVR divisible by eleven, a French SIRET whose SIREN and whole number both satisfy Luhn, the Croatian OIB, the Italian partita IVA, the Polish NIP with five zeros behind it and the UK or Northern Ireland VAT registration number with three. Austria publishes no structure and the check digit of the Portuguese third country scheme is unpublished, so both stay out; a country we cannot make verifiable is not generated. The tests build their calibration numbers from registered national identifiers and document that the official format examples of HMRC and the EU Commission are illustrations that fail the national checks on purpose. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This branch was successfully 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.
What is in here
The last batch of 6.1 data sources, in four commits:
#digit,@capital letter,*both, backslash escapes) with SkuSource, SerialNumberSource and LotNumberSource on top. These codes follow no public standard, so the pattern is the contract, stated openly; the lot number stamps the widespread year + day-of-year date code from a seeded date range.Verification
dotnet build -c Release: zero warnings.dotnet teston net8/9/10: 4932 passed, 12 known skips (~190 new tests).Tagging v6.1.0 follows after the merge.
🤖 Generated with Claude Code