1
0
mirror of https://github.com/fumiama/unibase2n.git synced 2026-06-05 00:32:47 +08:00

add more code

This commit is contained in:
源文雨
2022-10-02 12:27:46 +08:00
parent 1eec9a1529
commit 95efd10a6d
3 changed files with 187 additions and 0 deletions

View File

@@ -22,32 +22,70 @@ func NewBase(off, til uint16, bit uint8) (bs Base, err error)
```
12345678 -> 눦듌옚뽣며찈
```
### Base4096
```
123456 -> 㜓㘳㝃㤶
```
### Base512
```
123456789 -> ᑢᓈᖙᕃᒦᖍᖜᐹ
```
### Base256
```
12345678 -> ᄱᄲᄳᄴᄵᄶᄷᄸ
```
### BaseTanWi
```
12345678 -> ㌱㌲㌳㌴㌵㌶㌷㌸
```
### Base128
```
1234567 -> ⑸⒬⒦⒓⒁⒴Ⓦ⒗
```
### BaseDevanagari
```
1234567 -> घौॆळड॔६ष
```
### Base64Gua
```
123456 -> ䷌䷓䷈䷳䷍䷃䷔䷶
```
### BaseRune
```
123456 -> ᚬᚳᚨᛓᚭᚣᚴᛖ
```
### BaseMongolian
```
123456 -> ᠬᠳᠨᡓᠭᠣᠴᡖ
```
### Base32
```
12345 -> ▆▄▙▃▆▍▁▕
```
### BaseTibetan
```
12345 -> ཏཌྷརཌཏབཊཞ
```
### Base16
```
1234 -> ㆓㆑㆓㆒㆓㆓㆓㆔
```
### BaseBuginese
```
1234 -> ᨃᨁᨃᨂᨃᨃᨃᨄ
```
### Base8Gua
```
123456 -> ☱☴☲☳☱☰☶☳☱☵☰☳☲☴☶☶

View File

@@ -6,20 +6,38 @@ var (
Base16384, _ = NewBase(0x4e00, 0x3d00, 14)
// Base8192 谚文音節 Hangul Syllables
Base8192, _ = NewBase(0xac00, 0xcc00, 13)
// Base4096 CJK Unified Ideographs Extension A
Base4096, _ = NewBase(0x3400, 0x4400, 12)
// Base512 統一加拿大原住民音節文字 Unified Canadian Aboriginal Syllabics
Base512, _ = NewBase(0x1400, 0x1600, 9)
// Base256 谚文字母 Hangul Jamo
Base256, _ = NewBase(0x1100, 0, 8)
// BaseMath (256) 數學運算符 Mathematical Operators
BaseMath, _ = NewBase(0x2200, 0, 8)
// BaseTanWi 機種依存單位字符
BaseTanWi, _ = NewBase(0x3300, 0, 8)
// Base128 帶圈或括號的字母數字 Enclosed Alphanumerics
Base128, _ = NewBase(0x2460, 0x24f4, 7)
// BaseDevanagari 天城文 Devanagari
BaseDevanagari, _ = NewBase(0x0900, 0x09e5, 7)
// Base64 箭頭 Arrows
Base64, _ = NewBase(0x2190, 0x21d0, 6)
// Base64Gua 六十四卦 YiJing Hexagram Symbols
Base64Gua, _ = NewBase(0x4dc0, 0x262f, 6)
// BaseRune 盧恩字母 Runic
BaseRune, _ = NewBase(0x16a0, 0x16e0, 6)
// BaseMongolian 蒙古文 Mongolian
BaseMongolian, _ = NewBase(0x1820, 0x1860, 6)
// BaseBox 製表符 Box Drawing
BaseBox, _ = NewBase(0x2500, 0x25f0, 7)
// Base32 方塊元素 Block Elements
Base32, _ = NewBase(0x2580, 0x259f, 5)
// BaseTibetan 藏文 Tibetan
BaseTibetan, _ = NewBase(0x0f49, 0x0f1f, 5)
// Base16 漢文訓讀點 Kanbun Kundoku Den
Base16, _ = NewBase(0x3190, 0, 4)
// BaseBuginese 布吉文 Buginese
BaseBuginese, _ = NewBase(0x1a00, 0, 4)
// Base8Gua 八卦 YiJing Hexagram Symbols
Base8Gua, _ = NewBase(0x2630, 0x2689, 3)
)

View File

@@ -44,6 +44,46 @@ func TestEncodeBase8192(t *testing.T) {
}
}
func TestEncodeBase4096(t *testing.T) {
assert.Equal(t, "㜐䐁", Base4096.EncodeString("1"))
assert.Equal(t, "㜓㘀䐂", Base4096.EncodeString("12"))
assert.Equal(t, "㜓㘳㐀䐃", Base4096.EncodeString("123"))
assert.Equal(t, "㜓㘳㝀䐄", Base4096.EncodeString("1234"))
assert.Equal(t, "㜓㘳㝃㤀䐅", Base4096.EncodeString("12345"))
assert.Equal(t, "㜓㘳㝃㤶", Base4096.EncodeString("123456"))
assert.Equal(t, "㜓㘳㝃㤶㝰䐁", Base4096.EncodeString("1234567"))
assert.Equal(t, "㜓㘳㝃㤶㝳㰀䐂", Base4096.EncodeString("12345678"))
assert.Equal(t, "㜓㘳㝃㤶㝳㰹㐀䐃", Base4096.EncodeString("123456789"))
assert.Equal(t, "㜓㘳㝃㤶㝳㰹㜀䐄", Base4096.EncodeString("1234567890"))
assert.Equal(t, "㜓㘳㝃㤶㝳㰹㜃㔀䐅", Base4096.EncodeString("12345678901"))
if !assert.Equal(t, "㜓㘳㝃㤶㝳㰹㜃㔲", Base4096.EncodeString("123456789012")) {
t.Fatal("123456789012")
}
}
func TestEncodeBase512(t *testing.T) {
assert.Equal(t, "ᑢᘁ", Base512.EncodeString("1"))
assert.Equal(t, "ᑢᓈᘂ", Base512.EncodeString("12"))
assert.Equal(t, "ᑢᓈᖘᘃ", Base512.EncodeString("123"))
assert.Equal(t, "ᑢᓈᖙᕀᘄ", Base512.EncodeString("1234"))
assert.Equal(t, "ᑢᓈᖙᕃᒠᘅ", Base512.EncodeString("12345"))
assert.Equal(t, "ᑢᓈᖙᕃᒦᖀᘆ", Base512.EncodeString("123456"))
assert.Equal(t, "ᑢᓈᖙᕃᒦᖍᖀᘇ", Base512.EncodeString("1234567"))
assert.Equal(t, "ᑢᓈᖙᕃᒦᖍᖜ᐀ᘈ", Base512.EncodeString("12345678"))
assert.Equal(t, "ᑢᓈᖙᕃᒦᖍᖜᐹ", Base512.EncodeString("123456789"))
assert.Equal(t, "ᑢᓈᖙᕃᒦᖍᖜᐹᑠᘁ", Base512.EncodeString("1234567890"))
assert.Equal(t, "ᑢᓈᖙᕃᒦᖍᖜᐹᑠᓄᘂ", Base512.EncodeString("12345678901"))
if !assert.Equal(t, "ᑢᓈᖙᕃᒦᖍᖜᐹᑠᓄᖐᘃ", Base512.EncodeString("123456789012")) {
t.Fatal("123456789012")
}
if !assert.Equal(t, "ᑢᓈᖙᕃᒦᖍᖜᐹᑠᓄᖑᔰᘄ", Base512.EncodeString("1234567890123")) {
t.Fatal("1234567890123")
}
if !assert.Equal(t, "ᑢᓈᖙᕃᒦᖍᖜᐹᑠᓄᖑᔳᒀᘅ", Base512.EncodeString("12345678901234")) {
t.Fatal("12345678901234")
}
}
func TestEncodeBase256(t *testing.T) {
assert.Equal(t, "ᄱ", Base256.EncodeString("1"))
assert.Equal(t, "ᄱᄲ", Base256.EncodeString("12"))
@@ -67,6 +107,20 @@ func TestEncodeBase256(t *testing.T) {
}
}
func TestEncodeBaseTanWi(t *testing.T) {
assert.Equal(t, "㌱", BaseTanWi.EncodeString("1"))
assert.Equal(t, "㌱㌲", BaseTanWi.EncodeString("12"))
assert.Equal(t, "㌱㌲㌳", BaseTanWi.EncodeString("123"))
assert.Equal(t, "㌱㌲㌳㌴", BaseTanWi.EncodeString("1234"))
assert.Equal(t, "㌱㌲㌳㌴㌵", BaseTanWi.EncodeString("12345"))
assert.Equal(t, "㌱㌲㌳㌴㌵㌶", BaseTanWi.EncodeString("123456"))
assert.Equal(t, "㌱㌲㌳㌴㌵㌶㌷", BaseTanWi.EncodeString("1234567"))
assert.Equal(t, "㌱㌲㌳㌴㌵㌶㌷㌸", BaseTanWi.EncodeString("12345678"))
assert.Equal(t, "㌱㌲㌳㌴㌵㌶㌷㌸㌹", BaseTanWi.EncodeString("123456789"))
assert.Equal(t, "㌱㌲㌳㌴㌵㌶㌷㌸㌹㌰", BaseTanWi.EncodeString("1234567890"))
assert.Equal(t, "㌱㌲㌳㌴㌵㌶㌷㌸㌹㌰㌱", BaseTanWi.EncodeString("12345678901"))
}
func TestEncodeBase128(t *testing.T) {
assert.Equal(t, "⑸⒠⓵", Base128.EncodeString("1"))
assert.Equal(t, "⑸⒬⒠⓶", Base128.EncodeString("12"))
@@ -90,6 +144,29 @@ func TestEncodeBase128(t *testing.T) {
}
}
func TestEncodeBaseDevanagari(t *testing.T) {
assert.Equal(t, "घी০", BaseDevanagari.EncodeString("1"))
assert.Equal(t, "घौी১", BaseDevanagari.EncodeString("12"))
assert.Equal(t, "घौॆर২", BaseDevanagari.EncodeString("123"))
assert.Equal(t, "घौॆळठ৩", BaseDevanagari.EncodeString("1234"))
assert.Equal(t, "घौॆळड॔৪", BaseDevanagari.EncodeString("12345"))
assert.Equal(t, "घौॆळड॔६৫", BaseDevanagari.EncodeString("123456"))
assert.Equal(t, "घौॆळड॔६ष", BaseDevanagari.EncodeString("1234567"))
assert.Equal(t, "घौॆळड॔६षजऀ০", BaseDevanagari.EncodeString("12345678"))
assert.Equal(t, "घौॆळड॔६षजऎठ১", BaseDevanagari.EncodeString("123456789"))
assert.Equal(t, "घौॆळड॔६षजऎदऀ২", BaseDevanagari.EncodeString("1234567890"))
assert.Equal(t, "घौॆळड॔६षजऎदःई৩", BaseDevanagari.EncodeString("12345678901"))
if !assert.Equal(t, "घौॆळड॔६षजऎदःउै৪", BaseDevanagari.EncodeString("123456789012")) {
t.Fatal("123456789012")
}
if !assert.Equal(t, "घौॆळड॔६षजऎदःउै०৫", BaseDevanagari.EncodeString("1234567890123")) {
t.Fatal("1234567890123")
}
if !assert.Equal(t, "घौॆळड॔६षजऎदःउै०ऴ", BaseDevanagari.EncodeString("12345678901234")) {
t.Fatal("12345678901234")
}
}
func TestEncodeBase64Gua(t *testing.T) {
assert.Equal(t, "䷌䷐☰", Base64Gua.EncodeString("1"))
assert.Equal(t, "䷌䷓䷈☱", Base64Gua.EncodeString("12"))
@@ -113,6 +190,41 @@ func TestEncodeBase64Gua(t *testing.T) {
}
}
func TestEncodeBaseRune(t *testing.T) {
assert.Equal(t, "ᚬᚰᛡ", BaseRune.EncodeString("1"))
assert.Equal(t, "ᚬᚳᚨᛢ", BaseRune.EncodeString("12"))
assert.Equal(t, "ᚬᚳᚨᛓ", BaseRune.EncodeString("123"))
assert.Equal(t, "ᚬᚳᚨᛓᚭᚠᛡ", BaseRune.EncodeString("1234"))
assert.Equal(t, "ᚬᚳᚨᛓᚭᚣᚴᛢ", BaseRune.EncodeString("12345"))
assert.Equal(t, "ᚬᚳᚨᛓᚭᚣᚴᛖ", BaseRune.EncodeString("123456"))
assert.Equal(t, "ᚬᚳᚨᛓᚭᚣᚴᛖᚭᛐᛡ", BaseRune.EncodeString("1234567"))
assert.Equal(t, "ᚬᚳᚨᛓᚭᚣᚴᛖᚭᛓᛀᛢ", BaseRune.EncodeString("12345678"))
assert.Equal(t, "ᚬᚳᚨᛓᚭᚣᚴᛖᚭᛓᛀᛙ", BaseRune.EncodeString("123456789"))
assert.Equal(t, "ᚬᚳᚨᛓᚭᚣᚴᛖᚭᛓᛀᛙᚬᚠᛡ", BaseRune.EncodeString("1234567890"))
assert.Equal(t, "ᚬᚳᚨᛓᚭᚣᚴᛖᚭᛓᛀᛙᚬᚣᚤᛢ", BaseRune.EncodeString("12345678901"))
if !assert.Equal(t, "ᚬᚳᚨᛓᚭᚣᚴᛖᚭᛓᛀᛙᚬᚣᚤᛒ", BaseRune.EncodeString("123456789012")) {
t.Fatal("123456789012")
}
if !assert.Equal(t, "ᚬᚳᚨᛓᚭᚣᚴᛖᚭᛓᛀᛙᚬᚣᚤᛒᚬᛐᛡ", BaseRune.EncodeString("1234567890123")) {
t.Fatal("1234567890123")
}
if !assert.Equal(t, "ᚬᚳᚨᛓᚭᚣᚴᛖᚭᛓᛀᛙᚬᚣᚤᛒᚬᛓᚰᛢ", BaseRune.EncodeString("12345678901234")) {
t.Fatal("12345678901234")
}
}
func TestEncodeBaseMongolian(t *testing.T) {
assert.Equal(t, "ᠬᠰᡡ", BaseMongolian.EncodeString("1"))
assert.Equal(t, "ᠬᠳᠨᡢ", BaseMongolian.EncodeString("12"))
assert.Equal(t, "ᠬᠳᠨᡓ", BaseMongolian.EncodeString("123"))
assert.Equal(t, "ᠬᠳᠨᡓᠭᠠᡡ", BaseMongolian.EncodeString("1234"))
assert.Equal(t, "ᠬᠳᠨᡓᠭᠣᠴᡢ", BaseMongolian.EncodeString("12345"))
assert.Equal(t, "ᠬᠳᠨᡓᠭᠣᠴᡖ", BaseMongolian.EncodeString("123456"))
assert.Equal(t, "ᠬᠳᠨᡓᠭᠣᠴᡖᠭᡐᡡ", BaseMongolian.EncodeString("1234567"))
assert.Equal(t, "ᠬᠳᠨᡓᠭᠣᠴᡖᠭᡓᡀᡢ", BaseMongolian.EncodeString("12345678"))
assert.Equal(t, "ᠬᠳᠨᡓᠭᠣᠴᡖᠭᡓᡀᡙ", BaseMongolian.EncodeString("123456789"))
}
func TestEncodeBase32(t *testing.T) {
assert.Equal(t, "▆▄■", Base32.EncodeString("1"))
assert.Equal(t, "▆▄▙▀□", Base32.EncodeString("12"))
@@ -125,6 +237,18 @@ func TestEncodeBase32(t *testing.T) {
assert.Equal(t, "▆▄▙▃▆▍▁▕▆▘▛▓▐▎█▣", Base32.EncodeString("123456789"))
}
func TestEncodeBaseTibetan(t *testing.T) {
assert.Equal(t, "ཏཌྷ༠", BaseTibetan.EncodeString("1"))
assert.Equal(t, "ཏཌྷརཉ༡", BaseTibetan.EncodeString("12"))
assert.Equal(t, "ཏཌྷརཌཏ༢", BaseTibetan.EncodeString("123"))
assert.Equal(t, "ཏཌྷརཌཏབཉ༣", BaseTibetan.EncodeString("1234"))
assert.Equal(t, "ཏཌྷརཌཏབཊཞ", BaseTibetan.EncodeString("12345"))
assert.Equal(t, "ཏཌྷརཌཏབཊཞཏཡ༠", BaseTibetan.EncodeString("123456"))
assert.Equal(t, "ཏཌྷརཌཏབཊཞཏཡཤཙ༡", BaseTibetan.EncodeString("1234567"))
assert.Equal(t, "ཏཌྷརཌཏབཊཞཏཡཤཛྷཙ༢", BaseTibetan.EncodeString("12345678"))
assert.Equal(t, "ཏཌྷརཌཏབཊཞཏཡཤཛྷཙབྷད༣", BaseTibetan.EncodeString("123456789"))
}
func TestEncodeBase16(t *testing.T) {
assert.Equal(t, "㆓㆑", Base16.EncodeString("1"))
assert.Equal(t, "㆓㆑㆓㆒", Base16.EncodeString("12"))
@@ -137,6 +261,13 @@ func TestEncodeBase16(t *testing.T) {
assert.Equal(t, "㆓㆑㆓㆒㆓㆓㆓㆔㆓㆕㆓㆖㆓㆗㆓㆘㆓㆙", Base16.EncodeString("123456789"))
}
func TestEncodeBaseBuginese(t *testing.T) {
assert.Equal(t, "ᨃᨁ", BaseBuginese.EncodeString("1"))
assert.Equal(t, "ᨃᨁᨃᨂ", BaseBuginese.EncodeString("12"))
assert.Equal(t, "ᨃᨁᨃᨂᨃᨃ", BaseBuginese.EncodeString("123"))
assert.Equal(t, "ᨃᨁᨃᨂᨃᨃᨃᨄ", BaseBuginese.EncodeString("1234"))
}
func TestEncodeBase8Gua(t *testing.T) {
assert.Equal(t, "☱☴☲⚊", Base8Gua.EncodeString("1"))
assert.Equal(t, "☱☴☲☳☱☰⚋", Base8Gua.EncodeString("12"))