Conversion Accuracy Test
Real Results, Known Failures Listed
Most converters advertise "100% accurate" without publishing a single test. We do the opposite: this page runs a fixed corpus through the production engine, publishes the pass rate, and lists every case that fails — so you know what to double-check before publishing.
How each case is measured.
Each case is converted Unicode to Bijoy and back with the production engine; equality is compared after NFC normalization. A case passes only when the original Unicode text comes back character for character. Raw English words inside sentences are exempt: Bijoy ANSI stores Bangla in Latin glyph slots, so English text intentionally maps through those slots and cannot survive a roundtrip by design.
| Category | Cases | Passed | Known failures |
|---|---|---|---|
| Vowels and consonants (single map entries) | 75 | 75 | 0 |
| Conjuncts, phalas and ligature entries (multi-character map entries) | 144 | 144 | 0 |
| Common Bangla publishing words | 73 | 73 | 0 |
| Bangla segments of sentences containing digits, punctuation and English loans | 48 | 48 | 0 |
| Overall | 340 | 340 | 0 |
Corpus v1 lives in the repository (test/accuracy-corpus.mjs) and runs in CI on every engine change; this page regenerates with it. The engine is the same one behind the Unicode to Bijoy converter and the document conversion API.
What this test has caught
As of 2026-09-01, every case in the corpus roundtrips cleanly. It was not always so: the first published run of this benchmark caught a real engine defect — conjuncts and u-kar forms such as চ্চ, স্থ, রু whose Bijoy output occupies the legacy quote-and-dash glyph slots, which the punctuation pass then re-replaced. Words like স্বাস্থ্য, অস্থির, করুন came out with an adjacent wrong glyph. The punctuation rule now runs before the conjunct mapping, the fix is covered by the corpus in CI, and this page keeps documenting the failure class so the next reader knows what it looked like.
| Case | Before the fix | Current Bijoy output | Roundtrip |
|---|---|---|---|
| স্বাস্থ্য | ¯^v¯Õ¨ | ¯^v¯’¨ | Passes |
| করুন | KiÒb | Ki“b | Passes |
| চ্চ | ÓP | ”P | Passes |
What the 100% covers. The corpus spans every mapping entry, 73 publishing words, and the Bangla segments of sentences with digits, danda, and English loans. It does not claim every possible Bangla cluster — rare conjuncts outside the mapping always need human review.
English words are exempt by design. Bijoy ANSI stores Bangla glyphs in Latin character slots, so English text intentionally maps through those slots and cannot survive a roundtrip. That is a property of the encoding, not of the converter.
Accuracy test FAQ
How the benchmark works, what it measures, and how failures are handled.
What does the accuracy test measure?
Each case is converted from Unicode to Bijoy and converted back with the production engine. A case passes only when the original text returns character for character after NFC normalization, which also covers kars, reph, conjuncts, digits, and punctuation ordering.
Does the test reach 100%?
Yes — as of the last verified date every case roundtrips cleanly. It did not start that way: the first published run caught a real engine defect where conjuncts like চ্চ or স্থ used legacy glyph slots shared with quote characters. The fix is covered by this corpus in CI, so the same class of bug cannot return unnoticed.
Which words used to be affected by the known failures?
Words containing the affected conjuncts — for example স্বাস্থ্য, অস্থির, and করুন — came out with an adjacent wrong glyph before the punctuation-slot fix. The accuracy page keeps before-and-after examples, and any future regression would reappear on this page with the exact failing cases.
Why are English words inside sentences not tested for roundtrip?
Bijoy ANSI stores Bangla glyphs in Latin character slots, so English words intentionally map through those slots and cannot survive a roundtrip. The benchmark therefore roundtrips the Bangla segments of each sentence, which matches how the encoding actually works.
How often is this page updated?
The corpus and results live in the repository and run on every engine change. Whenever the mapping changes, the snapshot is regenerated and this page is republished with a new last-verified date.