Skip to content

fix: add cz/ico based issue #146#151

Merged
koblas merged 1 commit intomainfrom
cz-ico
Mar 22, 2026
Merged

fix: add cz/ico based issue #146#151
koblas merged 1 commit intomainfrom
cz-ico

Conversation

@koblas
Copy link
Copy Markdown
Owner

@koblas koblas commented Mar 22, 2026

This fixed #146

@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request expands the library's international identifier validation capabilities by integrating the Czech Company Identification Number (IČO). It provides robust validation and formatting functions for this crucial business identifier, ensuring data integrity and consistency for Czech entities. The changes enhance the library's utility for applications requiring accurate handling of Czech company data.

Highlights

  • New Identifier Added: Introduced support for the Czech Company Identification Number (IČO), an 8-digit identifier for business entities in the Czech Republic.
  • Validation Logic Implemented: Added comprehensive validation logic for IČO, including length checks, digit verification, reserved range checks, and a weighted modulus-11 checksum algorithm.
  • Test Coverage: Included dedicated unit tests for the IČO validation and formatting functions, covering various valid and invalid scenarios.
  • Documentation Update: Updated the README.md file to reflect the addition of the new Czech IČO identifier, enhancing the library's documentation.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@koblas koblas merged commit c475922 into main Mar 22, 2026
2 checks passed
@koblas koblas deleted the cz-ico branch March 22, 2026 08:32
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request adds support for the Czech Company Identification Number (IČO), including a validator, checksum logic, and tests. The implementation is well-done. I have provided a couple of suggestions: one to make the tests more robust by asserting on the full result object, and another to refine the checksum implementation for better clarity. Additionally, based on your project's use of semantic-release, you might consider changing the commit prefix from fix: to feat: since this adds new functionality.

it('validate:25596641 (Avast Software)', () => {
const result = validate('25596641');

expect(result.isValid && result.compact).toEqual('25596641');
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The current test assertion is a bit weak as it doesn't verify all properties of a successful validation, such as isCompany and isIndividual. Using toEqual with the expected result object would make the test more robust and its intent clearer. This suggestion applies to the other successful validation tests in this file as well.

Suggested change
expect(result.isValid && result.compact).toEqual('25596641');
expect(result).toEqual({
isValid: true,
compact: '25596641',
isIndividual: false,
isCompany: true,
});


const sum = weightedSum(front, {
modulus: 11,
weights: [8, 7, 6, 5, 4, 3, 2, 1],
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The weights array contains 8 elements, but the checksum is calculated on the first 7 digits of the IČO number, so front has a length of 7. The last weight, 1, is never used. To improve clarity and prevent confusion, it's best to have the weights array match the length of the data it's applied to.

Suggested change
weights: [8, 7, 6, 5, 4, 3, 2, 1],
weights: [8, 7, 6, 5, 4, 3, 2],

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.

Add Czech IČO (Company Identification Number) and reclassify CZ DIČ from "Company" to "Vat"

1 participant