Bnei-Baruch/mdb

View on GitHub
utils/gimatria_test.go

Summary

Maintainability
A
2 hrs
Test Coverage
package utils

import (
    "testing"
)

func TestNumToHebrew(t *testing.T) {
    vals := map[uint16]string{
        1:   "א",
        2:   "ב",
        3:   "ג",
        4:   "ד",
        5:   "ה",
        6:   "ו",
        7:   "ז",
        8:   "ח",
        9:   "ט",
        10:  "י",
        11:  "יא",
        12:  "יב",
        13:  "יג",
        14:  "יד",
        15:  "טו",
        16:  "טז",
        17:  "יז",
        18:  "יח",
        19:  "יט",
        20:  "כ",
        26:  "כו",
        30:  "ל",
        32:  "לב",
        40:  "מ",
        45:  "מה",
        50:  "נ",
        60:  "ס",
        63:  "סג",
        70:  "ע",
        72:  "עב",
        80:  "פ",
        90:  "צ",
        100: "ק",
        125: "קכה",
        200: "ר",
        216: "ריו",
        248: "רמח",
        300: "ש",
        320: "שכ",
        365: "שסה",
        400: "ת",
        402: "תב",
        472: "תעב",
        572: "תקעב",
        672: "תרעב",
        772: "תשעב",
        872: "תתעב",
        972: "תתקעב",
        1000: "א'",
        1001: "א' א",
        1015: "א' טו",
        1101: "א' קא",
        1216: "א' ריו",
        1995: "א' תתקצה",
        2000: "ב'",
        2017: "ב' יז",
        3000: "ג'",
        4000: "ד'",
        5000: "ה'",
        5773: "ה' תשעג",
        6000: "ו'",
        7000: "ז'",
        8000: "ח'",
        9000: "ט'",
        9999: "ט' תתקצט",
    }
    for k, v := range vals {
        x := NumToHebrew(k)
        if x != v {
            t.Errorf("Expected %s, got %s", v, x)
        }
    }

    // test we don't crash
    for i :=0; i < 10000; i++ {
        NumToHebrew(uint16(i))
    }
}