代码拉取完成,页面将自动刷新
同步操作将从 dromara/dongle 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package dongle
import (
"fmt"
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
var morseTests = []struct {
input string // 输入值
separator string // 分隔符
output string // 期望值
}{
{"", "", ""},
{"1", "/", ".----"},
{"F", "/", "..-."},
{"dongle", "|", "-..|---|-.|--.|.-..|."},
{"SOS", "/", ".../---/..."},
}
func TestMorse_Encode_String(t *testing.T) {
for index, test := range morseTests {
e := Encode.FromString(test.input).ByMorse(test.separator)
t.Run(fmt.Sprintf("test_%d", index), func(t *testing.T) {
assert.Nil(t, e.Error)
assert.Equal(t, test.output, e.ToString())
})
}
}
func TestMorse_Decode_String(t *testing.T) {
for index, test := range morseTests {
d := Decode.FromString(test.output).ByMorse(test.separator)
t.Run(fmt.Sprintf("test_%d", index), func(t *testing.T) {
assert.Nil(t, d.Error)
assert.Equal(t, strings.ToLower(test.input), d.ToString())
})
}
}
func TestMorse_Encode_Bytes(t *testing.T) {
for index, test := range morseTests {
e := Encode.FromBytes([]byte(test.input)).ByMorse(test.separator)
t.Run(fmt.Sprintf("test_%d", index), func(t *testing.T) {
assert.Nil(t, e.Error)
assert.Equal(t, []byte(test.output), e.ToBytes())
})
}
}
func TestMorse_Decode_Bytes(t *testing.T) {
for index, test := range morseTests {
d := Decode.FromBytes([]byte(test.output)).ByMorse(test.separator)
t.Run(fmt.Sprintf("test_%d", index), func(t *testing.T) {
assert.Nil(t, d.Error)
assert.Equal(t, []byte(strings.ToLower(test.input)), d.ToBytes())
})
}
}
func TestMorse_Src_Error(t *testing.T) {
e := Encode.FromString("hello world").ByMorse()
assert.Equal(t, invalidMorseSrcError(), e.Error)
}
func TestMorse_Decoding_Error(t *testing.T) {
e := Decode.FromString("hello world").ByMorse()
assert.Equal(t, morseDecodingError(), e.Error)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。