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:
38
README.md
38
README.md
@@ -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 -> ☱☴☲☳☱☰☶☳☱☵☰☳☲☴☶☶
|
||||
|
||||
18
define.go
18
define.go
@@ -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)
|
||||
)
|
||||
|
||||
131
encode_test.go
131
encode_test.go
@@ -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"))
|
||||
|
||||
Reference in New Issue
Block a user