提交 da0ae3ae 编写于 作者: aaronchen2k2k's avatar aaronchen2k2k

gen int

上级 50a0b0a7
......@@ -30,7 +30,6 @@ func Generate(file string, total int, fields string, out string, table string) {
Print(rows)
}
func Print(rows [][]string) {
width := stringUtils.GetNumbWidth(len(rows))
......
......@@ -27,35 +27,55 @@ func Generate(def *model.Definition, total int, fields string, out string, table
continue
}
if field.Loop == 0 {
field.Loop = 1
}
prefix := field.Prefix
postfix := field.Postfix
indexOfRow = i % len(fieldMap[field.Name])
if len(rows) == i { rows = append(rows, make([]string, 0)) }
str := "n/a"
val := fieldMap[field.Name][indexOfRow]
switch val.(type) {
case int64:
str = strconv.FormatInt(val.(int64),10)
case float64:
precision := 0
if field.Precision > 0 {
precision = field.Precision
}
str = strconv.FormatFloat(val.(float64), 'f', precision, 64)
case byte:
str = string(val.(byte))
default:
loopStr := ""
for j := 0; j < field.Loop; j++ {
if loopStr != "" {
loopStr = loopStr + field.Loopfix
}
str := GetFieldStr(field, fieldMap, indexOfRow)
loopStr = loopStr + str
indexOfRow++
if indexOfRow == len(fieldMap[field.Name]) { // no enough
indexOfRow = 0
}
}
rows[i] = append(rows[i], prefix + str + postfix)
rows[i] = append(rows[i], prefix + loopStr + postfix)
}
}
return rows
}
func GetFieldStr(field model.Field, fieldMap map[string][]interface{}, indexOfRow int) string {
str := "n/a"
val := fieldMap[field.Name][indexOfRow]
switch val.(type) {
case int64:
str = strconv.FormatInt(val.(int64), 10)
case float64:
precision := 0
if field.Precision > 0 {
precision = field.Precision
}
str = strconv.FormatFloat(val.(float64), 'f', precision, 64)
case byte:
str = string(val.(byte))
default:
}
return str
}
func GenerateFieldArr(field *model.Field, total int, fieldMap map[string][]interface{}) {
datatype := strings.TrimSpace(field.Type)
if datatype == "" { datatype = "list" }
......
......@@ -16,6 +16,8 @@ type Field struct {
Range string `yaml:"range"`
Prefix string `yaml:"prefix"`
Postfix string `yaml:"postfix"`
Loop int `yaml:"loop"`
Loopfix string `yaml:"loopfix"`
Expect string `yaml:"expect"`
Fields []Field `yaml:"fields,flow"`
......
......@@ -7,9 +7,11 @@ fields:
- name: field1
note: 默认的列表类型,通过逗号隔成若干区段。
type: list
range: 1-3,x-z:R,10.01-19.20:R,101,102
range: 1-3,x-z:R,10.01-19.20:3,101,102,103
prefix:
postfix:
loop: 3
loopfix: "|"
expect: 1,2,3...,10,20,21,22...,25,27,29.30
- name: field2
note: 区间可以指定步长。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册