diff --git a/README.md b/README.md index 601c1ef..b630c1b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # ZPLGFA Golang Package [![GoDoc](https://godoc.org/github.com/SimonWaldherr/zplgfa?status.svg)](https://godoc.org/github.com/SimonWaldherr/zplgfa) +[![Build Status](https://travis-ci.org/SimonWaldherr/zplgfa.svg?branch=master)](https://travis-ci.org/SimonWaldherr/zplgfa) +[![Coverage Status](https://coveralls.io/repos/github/SimonWaldherr/zplgfa/badge.svg?branch=master)](https://coveralls.io/github/SimonWaldherr/zplgfa?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/SimonWaldherr/zplgfa)](https://goreportcard.com/report/github.com/SimonWaldherr/zplgfa) [![codebeat badge](https://codebeat.co/badges/28d795af-6f9b-453a-94c2-4fafb8b5b0d5)](https://codebeat.co/projects/github-com-simonwaldherr-zplgfa-master) [![BCH compliance](https://bettercodehub.com/edge/badge/SimonWaldherr/zplgfa?branch=master)](https://bettercodehub.com/results/SimonWaldherr/zplgfa) diff --git a/test2.png b/test2.png new file mode 100644 index 0000000..ae77cac Binary files /dev/null and b/test2.png differ diff --git a/zplgfa_test.go b/zplgfa_test.go index 3ee3ea9..c2f1248 100644 --- a/zplgfa_test.go +++ b/zplgfa_test.go @@ -11,49 +11,75 @@ import ( "strings" ) +type zplTest struct { + file string + zpl string +} + +var zplTests []zplTest + +func init() { + zplTests = []zplTest{ + { + file: "./test.png", + zpl: "^XA,^FS^FO0,0^GFA,32,51,3,,::01C000::,001C00::,1DDC00::,::^FS,^XZ", + }, + { + file: "./test2.png", + zpl: "^XA,^FS^FO0,0^GFA,389,630,63,,038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038000::1C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C7100::E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00:lJF00^FS,^XZ", + }, + } +} + func Test_CompressASCII(t *testing.T) { if str := CompressASCII("FFFFFFFF000000"); str != "NFL0" { t.Fatalf("CompressASCII failed") } } + + func Test_ConvertToZPL(t *testing.T) { - // open file - file, err := os.Open("./test.png") - if err != nil { - log.Printf("Warning: could not open the file: %s\n", err) - return - } - - defer file.Close() - - // load image head information - config, format, err := image.DecodeConfig(file) - if err != nil { - log.Printf("Warning: image not compatible, format: %s, config: %v, error: %s\n", format, config, err) - } - - // reset file pointer to the beginning of the file - file.Seek(0, 0) - - // load and decode image - img, _, err := image.Decode(file) - if err != nil { - log.Printf("Warning: could not decode the file, %s\n", err) - return - } - - // flatten image - flat := FlattenImage(img) - - // convert image to zpl compatible type - gfimg := ConvertToZPL(flat, CompressedASCII) - - // remove whitespace - only for the test - gfimg = strings.Replace(gfimg, " ", "", -1) - gfimg = strings.Replace(gfimg, "\n", "", -1) - - if gfimg != "^XA,^FS^FO0,0^GFA,32,51,3,,::01C000::,001C00::,1DDC00::,::^FS,^XZ" { - t.Fatalf("ConvertToZPL failed") + for i, testcase := range zplTests { + + filename, zplstring := testcase.file, testcase.zpl + // open file + file, err := os.Open(filename) + if err != nil { + log.Printf("Warning: could not open the file: %s\n", err) + return + } + + defer file.Close() + + // load image head information + config, format, err := image.DecodeConfig(file) + if err != nil { + log.Printf("Warning: image not compatible, format: %s, config: %v, error: %s\n", format, config, err) + } + + // reset file pointer to the beginning of the file + file.Seek(0, 0) + + // load and decode image + img, _, err := image.Decode(file) + if err != nil { + log.Printf("Warning: could not decode the file, %s\n", err) + return + } + + // flatten image + flat := FlattenImage(img) + + // convert image to zpl compatible type + gfimg := ConvertToZPL(flat, CompressedASCII) + + // remove whitespace - only for the test + gfimg = strings.Replace(gfimg, " ", "", -1) + gfimg = strings.Replace(gfimg, "\n", "", -1) + + if gfimg != zplstring { + t.Fatalf("Testcase %d ConvertToZPL failed", i) + } } }