Skip to main content

Transparency

Conversion Accuracy Benchmark

Public test results for our Krutidev-to-Unicode converter. Every test case is listed with input, expected output, and pass/fail status. No other converter in this niche publishes their accuracy data.

27/27

Tests Passing

100%

Pass Rate

7

Categories Tested

#CategoryInput (Krutidev)Expected (Unicode)Status
1ConsonantsdkकाPass
2Consonants[kkखाPass
3ConsonantsxkगाPass
4Consonants?kkघाPass
5VowelsvkPass
6VowelsbZPass
7Vowels,sPass
8VowelsvksPass
9MatrasdhकीPass
10MatrasdqकुPass
11MatrasdsकेPass
12MatrasdksकोPass
13Chhoti I MatrafdकिPass
14Chhoti I MatrafgUnhहिन्दीPass
15Conjuncts{kक्षPass
16Conjuncts=त्रPass
17ConjunctsKज्ञPass
18ConjunctsJश्रPass
19RephdeZकर्मPass
20Reph/keZधर्मPass
21Numberså ƒ „ … † ‡ ˆ ‰ Š ‹० १ २ ३ ४ ५ ६ ७ ८ ९Pass
22PunctuationAPass
23Mixed TextHkkjrभारतPass
24Mixed TextljdkjसरकारPass
25Mixed TextfgUnh Hkk"kkहिन्दी भाषाPass
26Complexfo'ofo|ky;विश्वविद्यालयPass
27Complexiz'kklfudप्रशासनिकPass

For details on how each conversion step works, see our methodology documentation.

How We Test

Each test case is created by typing the input text in Microsoft Word with the Krutidev 010 font active, visually confirming the rendered Hindi text, then manually writing the expected Unicode output. The expected output is verified by rendering it in a standard Unicode font (Noto Sans Devanagari) and comparing the visual result to the Krutidev rendering.

The benchmark runs as an automated test suite. For each test case, we call our krutidevToUnicode() function with the input string and compare the output to the expected string using strict equality. A single character difference - including invisible Unicode characters like zero-width joiners - marks the test as failed.

We categorize test cases by the feature they exercise: basic consonants, vowels, each matra type, chhoti i matra repositioning, reph handling, conjuncts, Devanagari numerals, punctuation, and multi-word phrases from real government documents. This ensures that a code change affecting reph handling does not silently break consonant mapping.

New test cases are added when: (1) a user reports a conversion error, (2) we add support for a new character or conjunct, or (3) we identify an edge case during code review. We never remove passing test cases. The benchmark only grows.

Explore More

Frequently Asked Questions

How are these test cases selected?
Test cases cover every category of Krutidev character: individual consonants, vowels, all 10 matras, the 4 most common conjuncts (क्ष, त्र, ज्ञ, श्र), reph constructions, Devanagari numerals, punctuation, and multi-word phrases from real government documents. We add new test cases when users report conversion errors or when we identify edge cases during development.
What does "pass" mean for a test case?
A test case passes when our converter output is character-for-character identical to the expected Unicode string. We compare using strict equality (===), not visual similarity. A single wrong character, missing matra, or incorrect character order marks the test as failed. The expected output is manually verified against the Krutidev 010 font glyph table.
How often is the benchmark updated?
We run the full benchmark suite before every code deployment. When a user reports a conversion error, we add it as a new test case, fix the issue, and verify the fix does not break any existing test case. The benchmark page shows the most recent results. Historical results are tracked internally.
Can I download the test data?
The test cases on this page are the complete public benchmark. We plan to add a CSV download option in a future update. For now, you can copy individual test cases from the table. If you are building your own converter, these test cases make a good starting validation set.