From 2eb19cc251c8c5d4be42b85e19477d91291302fe Mon Sep 17 00:00:00 2001 From: Simon Waldherr Date: Sat, 20 Oct 2018 18:31:30 +0200 Subject: [PATCH] more tests --- README.md | 2 ++ tests/README.md | 7 +++++++ tests/test4.jpg | Bin 0 -> 27325 bytes tests/test5.png | Bin 0 -> 6224 bytes tests/tests.json | 10 ++++++++++ zplgfa.go | 3 --- zplgfa_test.go | 7 +++++++ 7 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 tests/README.md create mode 100644 tests/test4.jpg create mode 100644 tests/test5.png diff --git a/README.md b/README.md index b630c1b..92d541d 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,8 @@ The ZPLGFA Golang package implements some functions to convert PNG, JPEG and GIF files to ZPL compatible ^GF-elements ([Graphic Fields](https://www.zebra.com/us/en/support-downloads/knowledge-articles/gf-graphic-field-zpl-command.html)). +If you need a ready to use application and don't want to hassle around with source code, take a look at the [ZPLGFA CLI Tool](https://github.com/SimonWaldherr/zplgfa/tree/master/cmd/zplgfa) which is based on this package. + ## install 1. [install Golang](https://golang.org/doc/install) diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000..01fa340 --- /dev/null +++ b/tests/README.md @@ -0,0 +1,7 @@ +# ZPLGFA Tests + +This folder contains some test cases for the ZPLGFA package. +The test coverage can be seen at the [coveralls](https://coveralls.io/github/SimonWaldherr/zplgfa?branch=master) project page. + +[![Coverage Status](https://coveralls.io/repos/github/SimonWaldherr/zplgfa/badge.svg?branch=master)](https://coveralls.io/github/SimonWaldherr/zplgfa?branch=master) + diff --git a/tests/test4.jpg b/tests/test4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fb1d788955bca2d9abaf2593e9ed7e844eaa4cd8 GIT binary patch literal 27325 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 literal 0 HcmV?d00001 diff --git a/tests/test5.png b/tests/test5.png new file mode 100644 index 0000000000000000000000000000000000000000..f068a21910eff57b1583d9fed0c6ec0f871f8425 GIT binary patch literal 6224 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