nori/common/utils/zip_test.go

61 lines
1.2 KiB
Go

package utils
import (
"bytes"
"fmt"
"os"
"testing"
"git.tuxpa.in/a/gotagonist/common/nori"
)
func TestParseFile1(t *testing.T) {
nori, err := nori.FromFile("./zip_test/test1.nri")
if err != nil {
t.Errorf("decode: %s", err)
}
t.Logf("\n nori: %+v\n gawi: %+v", nori, nori.Gawi)
err = writeZip(nori, "test1")
if err != nil {
t.Errorf("export: %s", err)
}
}
func TestParseFile2(t *testing.T) {
nori, err := nori.FromFile("./zip_test/test2.nri")
if err != nil {
t.Errorf("decode: %s", err)
}
t.Logf("\n nori: %+v\n gawi: %+v", nori, nori.Gawi)
err = writeZip(nori, "test2")
if err != nil {
t.Errorf("export: %s", err)
}
}
func TestParsePalette(t *testing.T) {
nori, err := nori.FromFile("./zip_test/palette.nri")
if err != nil {
t.Errorf("decode: %s", err)
}
t.Logf("\n nori: %+v\n gawi: %+v\n palette: %+v\n", nori, nori.Gawi, nori.Gawi.Palette)
err = writeZip(nori, "palette")
if err != nil {
t.Errorf("export: %s", err)
}
}
func writeZip(n *nori.Nori, name string) error {
out := new(bytes.Buffer)
frames, err := nori.RenderAnimations(n)
if err != nil {
return err
}
if err := ZipApngs(out, frames); err != nil {
return err
}
os.WriteFile(fmt.Sprintf("./zip_test/%s.zip", name), out.Bytes(), 0740)
return nil
}