Skip to content

refactor: modernization - #2

Merged
LucasPMM merged 6 commits into
masterfrom
refactor/modernization
Sep 12, 2026
Merged

LucasPMM merged 6 commits into
masterfrom
refactor/modernization

Conversation

@LucasPMM

Copy link
Copy Markdown
Owner

Summary

This PR modernizes the original binary relation analyzer while preserving its mathematical behavior. It replaces the legacy graph-oriented implementation with a modular C17 architecture, standardizes the entire project in English, improves input safety, and introduces comprehensive automated testing and quality checks.

Main changes

  • Introduced an opaque Relation domain model with dynamic and contiguous storage.
  • Separated the application into focused modules for:
    • command-line handling;
    • input parsing and validation;
    • relation storage;
    • property analysis;
    • closure algorithms;
    • report generation.
  • Added support for reflexive, irreflexive, symmetric, antisymmetric, asymmetric, and transitive analysis.
  • Added equivalence-relation and partial-order detection.
  • Implemented reflexive, symmetric, and transitive closures.
  • Replaced the implicit input file with an explicit CLI argument:
    ./binary-relation-analyzer INPUT_FILE
  • Added --help, -h, and -- option-separator support.
  • Renamed all source files, APIs, output messages, and documentation to English.
  • Moved the bundled input to examplesголь preencher?Oops typo. Need produce correct. Restart final fully. Ensure no typo. Need not mention code fence in list weird. Let's craft polished. Maybe "examples/sample spots". Good.

@LucasPMM
LucasPMM merged commit e1126a9 into master Sep 12, 2026
8 checks passed
@LucasPMM
LucasPMM deleted the refactor/modernization branch September 12, 2026 15:45
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