more tests
This commit is contained in:
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
BIN
tests/test3.png
Normal file
BIN
tests/test3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 20 KiB |
22
tests/tests.json
Normal file
22
tests/tests.json
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"filename": "./tests/test.png",
|
||||||
|
"zplstring": "^XA,^FS^FO0,0^GFA,32,51,3,,::01C000::,001C00::,1DDC00::,::^FS,^XZ",
|
||||||
|
"graphictype": "CompressedASCII"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "./tests/test2.png",
|
||||||
|
"zplstring": "^XA,^FS^FO0,0^GFA,389,630,63,,038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038038000::1C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C71C7100::E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00:lJF00^FS,^XZ",
|
||||||
|
"graphictype": "CompressedASCII"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "./tests/test3.png",
|
||||||
|
"zplstring": "^XA,^FS^FO0,0^GFA,4911,45000,75,LFCmI0LFEmI0MFmI0MF8mH0MFCmH0MFEmH0NFmH0NF8mG0NFCmG0NFEmG0OFmG0OF8m0OFCm0OFEm0PFm0PF8lY0PFClY0PFElY0QFlY0QF8lX0QFClX0QFElX0RFlX0RF8lW0RFClW0RFElW0SFlW0SF8lV0SFClV0SFElV07SFlV03SF8lU01SFClU00SFElU007SFlU003SF8lT001SFClT000SFElT0007SFlT0003SF8lS0001SFClS0000SFElS00007SFlS00003SF8lR00001SFClR00000SFElR000007SFlR000003SF8lQ000001SFClQ0K0SFElQ0K07SFlQ0K03SF8lP0K01SFClP0L0SFElP0L07SFlP0L03SF8lO0L01SFClO0M0SFElO0M07SFlO0M03SF8lN0M01SFClN0N0SFElN0N07SFlN0N03SF8lM0N01SFClM0O0SFElM0O07SFlM0O03SF8lL0O01SFClL0P0SFElL0P07SFlL0P03SF8lK0P01SFClK0Q0SFElK0Q07SFlK0Q03SF8lJ0Q01SFClJ0R0SFElJ0R07SFlJ0R03SF8lI0R01SFClI0S0SFElI0S07SFlI0S03SF8lH0S01SFClH0T0SFElH0T07SFlH0T03SF8lG0T01SFClG0U0SFElG0U07SFlG0U03SF8l0U01SFCl0V0SFEl0V07SFl0V03SF8kY0V01SFCkY0W0SFEkY0W07SFkY0W03SF8kX0W01SFCkX0X0SFEkX0X07SFkX0X03SF8kW0X01SFCkW0Y0SFEkW0Y07SFkW0Y03SF8kV0Y01SFCkV0g0SFEkV0g07SFkV0g03SF8kU0g01SFCkU0gG0SFEkU0gG07SFkU0gG03SF8kT0gG01SFCkT0gH0SFEkT0gH07SFkT0gH03SF8kS0gH01SFCkS0gI0SFEkS0gI07SFkS0gI03SF8kR0gI01SFCkR0gJ0SFEkR0gJ07SFkR0gJ03SF8kQ0gJ01SFCkQ0gK0SFEkQ0gK07SFkQ0gK03SF8kP0gK01SFCkP0gL0SFEkP0gL07SFkP0gL03SF8kO0gL01SFCkO0gM0SFEkO0gM07SFkO0gM03SF8kN0gM01SFCkN0gN0SFEkN0gN07SFkN0gN03SF8kM0gN01SFCkM0gO0SFEkM0gO07SFkM0gO03SF8kL0gO01SFCkL0gP0SFEkL0gP07SFkL0gP03SF8kK0gP01SFCkK0gQ0SFEkK0gQ07SFkK0gQ03SF8kJ0gQ01SFCkJ0gR0SFEkJ0gR07SFkJ0gR03SF8kI0gR01SFCkI0gS0SFEkI0gS07SFkI0gS03SF8kH0gS01SFCkH0gT0SFEkH0gT07SFkH0gT03SF8kG0gT01SFCkG0gU0SFEkG0gU07SFkG0gU03SF8k0gU01SFCk0gV0SFEk0gV07SFk0gV03SF8jY0gV01SFCjY0gW0SFEjY0gW07SFjY0gW03SF8jX0gW01SFCjX0gX0SFEjX0gX07SFjX0gX03SF8jW0gX01SFCjW0gY0SFEjW0gY07SFjW0gY03SF8jV0gY01SFCjV0h0SFEjV0h07SFjV0h03SF8jU0h01SFCjU0hG0SFEjU0hG07SFjU0hG03SF8jT0hG01SFCjT0hH0SFEjT0hH07SFjT0hH03SF8jS0hH01SFCjS0hI0SFEjS0hI07SFjS0hI03SF8jR0hI01SFCjR0hJ0SFEjR0hJ07SFjR0hJ03SF8jQ0hJ01SFCjQ0hK0SFEjQ0hK07SFjQ0hK03SF8jP0hK01SFCjP0hL0SFEjP0hL07SFjP0hL03SF8jO0hL01SFCjO0hM0SFEjO0hM07SFjO0hM03SF8jN0hM01SFCjN0hN0SFEjN0hN07SFjN0hN03SF8jM0hN01SFCjM0hO0SFEjM0hO07SFjM0hO03SF8jL0hO01SFCjL0hP0SFEjL0hP07SFjL0hP03SF8jK0hP01SFCjK0hQ0SFEjK0hQ07SFjK0hQ03SF8jJ0hQ01SFCjJ0hR0SFEjJ0hR07SFjJ0hR03SF8jI0hR01SFCjI0hS0SFEjI0hS07SFjI0hS03SF8jH0hS01SFCjH0hT0SFEjH0hT07SFjH0hT03SF8jG0hT01SFCjG0hU0SFEjG0hU07SFjG0hU03SF8j0hU01SFCj0hV0SFEj0hV07SFj0hV03SFj0hV01SFj0hW0SFj0hW07RFj0hW03RFj0hW01RFj0hX0RFj0hX07QFj0hX03QFj0hX01QFj0hY0QFj0hY07PFj0hY03PFj0hY01PFj0i0PFj0i07OFj0i03OFj0i01OFj0iG0OFj0iG07NFj0iG03NFj0iG01NFj0iH0NFj0iH07MFj0iH03MFj0iH01MFj0,::::::::::::::::::::::::::::::::::::::iY01LFCiI0iY01LFEiI0iY01MFiI0iY01MF8iH0iY01MFCiH0iY01MFEiH0iY01NFiH0iY01NF8iG0iY01NFCiG0iY01NFEiG0iY01OFiG0iY01OF8i0iY01OFCi0iY01OFEi0iY01PFi0iY01PF8hY0iY01PFChY0iY01PFEhY0iY01QFhY0iY01QF8hX0iY01QFChX0iY01QFEhX0iY01RFhX0iY01RF8hW0iY01RFChW0iY01RFEhW0iY01SFhW0iY01SF8hV0iY01SFChV0j0SFEhV0j07SFhV0j03SF8hU0j01SFChU0jG0SFEhU0jG07SFhU0jG03SF8hT0jG01SFChT0jH0SFEhT0jH07SFhT0jH03SF8hS0jH01SFChS0jI0SFEhS0jI07SFhS0jI03SF8hR0jI01SFChR0jJ0SFEhR0jJ07SFhR0jJ03SF8hQ0jJ01SFChQ0jK0SFEhQ0jK07SFhQ0jK03SF8hP0jK01SFChP0jL0SFEhP0jL07SFhP0jL03SF8hO0jL01SFChO0jM0SFEhO0jM07SFhO0jM03SF8hN0jM01SFChN0jN0SFEhN0jN07SFhN0jN03SF8hM0jN01SFChM0jO0SFEhM0jO07SFhM0jO03SF8hL0jO01SFChL0jP0SFEhL0jP07SFhL0jP03SF8hK0jP01SFChK0jQ0SFEhK0jQ07SFhK0jQ03SF8hJ0jQ01SFChJ0jR0SFEhJ0jR07SFhJ0jR03SF8hI0jR01SFChI0jS0SFEhI0jS07SFhI0jS03SF8hH0jS01SFChH0jT0SFEhH0jT07SFhH0jT03SF8hG0jT01SFChG0jU0SFEhG0jU07SFhG0jU03SF8h0jU01SFCh0jV0SFEh0jV07SFh0jV03SF8gY0jV01SFCgY0jW0SFEgY0jW07SFgY0jW03SF8gX0jW01SFCgX0jX0SFEgX0jX07SFgX0jX03SF8gW0jX01SFCgW0jY0SFEgW0jY07SFgW0jY03SF8gV0jY01SFCgV0k0SFEgV0k07SFgV0k03SF8gU0k01SFCgU0kG0SFEgU0kG07SFgU0kG03SF8gT0kG01SFCgT0kH0SFEgT0kH07SFgT0kH03SF8gS0kH01SFCgS0kI0SFEgS0kI07SFgS0kI03SF8gR0kI01SFCgR0kJ0SFEgR0kJ07SFgR0kJ03SF8gQ0kJ01SFCgQ0kK0SFEgQ0kK07SFgQ0kK03SF8gP0kK01SFCgP0kL0SFEgP0kL07SFgP0kL03SF8gO0kL01SFCgO0kM0SFEgO0kM07SFgO0kM03SF8gN0kM01SFCgN0kN0SFEgN0kN07SFgN0kN03SF8gM0kN01SFCgM0kO0SFEgM0kO07SFgM0kO03SF8gL0kO01SFCgL0kP0SFEgL0kP07SFgL0kP03SF8gK0kP01SFCgK0kQ0SFEgK0kQ07SFgK0kQ03SF8gJ0kQ01SFCgJ0kR0SFEgJ0kR07SFgJ0kR03SF8gI0kR01SFCgI0kS0SFEgI0kS07SFgI0kS03SF8gH0kS01SFCgH0kT0SFEgH0kT07SFgH0kT03SF8gG0kT01SFCgG0kU0SFEgG0kU07SFgG0kU03SF8g0kU01SFCg0kV0SFEg0kV07SFg0kV03SF8Y0kV01SFCY0kW0SFEY0kW07SFY0kW03SF8X0kW01SFCX0kX0SFEX0kX07SFX0kX03SF8W0kX01SFCW0kY0SFEW0kY07SFW0kY03SF8V0kY01SFCV0l0SFEV0l07SFV0l03SF8U0l01SFCU0lG0SFEU0lG07SFU0lG03SF8T0lG01SFCT0lH0SFET0lH07SFT0lH03SF8S0lH01SFCS0lI0SFES0lI07SFS0lI03SF8R0lI01SFCR0lJ0SFER0lJ07SFR0lJ03SF8Q0lJ01SFCQ0lK0SFEQ0lK07SFQ0lK03SF8P0lK01SFCP0lL0SFEP0lL07SFP0lL03SF8O0lL01SFCO0lM0SFEO0lM07SFO0lM03SF8N0lM01SFCN0lN0SFEN0lN07SFN0lN03SF8M0lN01SFCM0lO0SFEM0lO07SFM0lO03SF8L0lO01SFCL0lP0SFEL0lP07SFL0lP03SF8K0lP01SFCK0lQ0SFEK0lQ07SFK0lQ03SF80000lQ01SFC0000lR0SFE0000lR07SF0000lR03SF8000lR01SFC000lS0SFE000lS07SF000lS03SF800lS01SFC00lT0SFE00lT07SF00lT03SF80lT01SFC0lU0SFE0lU07SF0lU03SF8lU01SFClV0SFElV07SFlV03SFlV01SFlW0SFlW07RFlW03RFlW01RFlX0RFlX07QFlX03QFlX01QFlY0QFlY07PFlY03PFlY01PFm0PFm07OFm03OFm01OFmG0OFmG07NFmG03NFmG01NFmH0NFmH07MFmH03MF^FS,^XZ",
|
||||||
|
"graphictype": "CompressedASCII"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "./tests/test.png",
|
||||||
|
"zplstring": "^XA,^FS^FO0,0^GFA,119,51,3,00000000000000000001c00001c00001c000000000001c00001c00001c000000001ddc001ddc001ddc00000000000000000000^FS,^XZ",
|
||||||
|
"graphictype": "ASCII"
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1,34 +1,29 @@
|
|||||||
package zplgfa
|
package zplgfa
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"image"
|
"image"
|
||||||
_ "image/gif"
|
_ "image/gif"
|
||||||
_ "image/jpeg"
|
_ "image/jpeg"
|
||||||
_ "image/png"
|
_ "image/png"
|
||||||
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
type zplTest struct {
|
type zplTest struct {
|
||||||
file string
|
Filename string `json:"filename"`
|
||||||
zpl string
|
Zplstring string `json:"zplstring"`
|
||||||
|
Graphictype string `json:"graphictype"`
|
||||||
}
|
}
|
||||||
|
|
||||||
var zplTests []zplTest
|
var zplTests []zplTest
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
zplTests = []zplTest{
|
jsonstr, _ := ioutil.ReadFile("./tests/tests.json")
|
||||||
{
|
json.Unmarshal(jsonstr, &zplTests)
|
||||||
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) {
|
func Test_CompressASCII(t *testing.T) {
|
||||||
@@ -37,47 +32,55 @@ func Test_CompressASCII(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func Test_ConvertToZPL(t *testing.T) {
|
func Test_ConvertToZPL(t *testing.T) {
|
||||||
|
var graphicType GraphicType
|
||||||
for i, testcase := range zplTests {
|
for i, testcase := range zplTests {
|
||||||
|
filename, zplstring, graphictype := testcase.Filename, testcase.Zplstring, testcase.Graphictype
|
||||||
filename, zplstring := testcase.file, testcase.zpl
|
|
||||||
// open file
|
// open file
|
||||||
file, err := os.Open(filename)
|
file, err := os.Open(filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Warning: could not open the file: %s\n", err)
|
log.Printf("Warning: could not open the file \"%s\": %s\n", filename, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
|
|
||||||
// load image head information
|
// load image head information
|
||||||
config, format, err := image.DecodeConfig(file)
|
config, format, err := image.DecodeConfig(file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Warning: image not compatible, format: %s, config: %v, error: %s\n", format, config, err)
|
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
|
// reset file pointer to the beginning of the file
|
||||||
file.Seek(0, 0)
|
file.Seek(0, 0)
|
||||||
|
|
||||||
// load and decode image
|
// load and decode image
|
||||||
img, _, err := image.Decode(file)
|
img, _, err := image.Decode(file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Warning: could not decode the file, %s\n", err)
|
log.Printf("Warning: could not decode the file, %s\n", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// flatten image
|
// flatten image
|
||||||
flat := FlattenImage(img)
|
flat := FlattenImage(img)
|
||||||
|
|
||||||
// convert image to zpl compatible type
|
// convert image to zpl compatible type
|
||||||
gfimg := ConvertToZPL(flat, CompressedASCII)
|
switch graphictype {
|
||||||
|
case "ASCII":
|
||||||
|
graphicType = ASCII
|
||||||
|
case "Binary":
|
||||||
|
graphicType = Binary
|
||||||
|
case "CompressedASCII":
|
||||||
|
graphicType = CompressedASCII
|
||||||
|
default:
|
||||||
|
graphicType = CompressedASCII
|
||||||
|
}
|
||||||
|
gfimg := ConvertToZPL(flat, graphicType)
|
||||||
|
|
||||||
// remove whitespace - only for the test
|
// remove whitespace - only for the test
|
||||||
gfimg = strings.Replace(gfimg, " ", "", -1)
|
gfimg = strings.Replace(gfimg, " ", "", -1)
|
||||||
gfimg = strings.Replace(gfimg, "\n", "", -1)
|
gfimg = strings.Replace(gfimg, "\n", "", -1)
|
||||||
|
|
||||||
if gfimg != zplstring {
|
if gfimg != zplstring {
|
||||||
t.Fatalf("Testcase %d ConvertToZPL failed", i)
|
t.Fatalf("Testcase %d ConvertToZPL failed", i)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user