From 102559cb06d7e9a555c2c4986425ae8215cb4726 Mon Sep 17 00:00:00 2001 From: Steven Hugg Date: Sat, 30 Mar 2019 10:51:30 -0400 Subject: [PATCH] updated unit tests --- src/pixed/pixeleditor.ts | 2 +- test/cli/testpixelconvert.js | 40 +++++++++++++++++++++++------------- tss | 2 +- 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/pixed/pixeleditor.ts b/src/pixed/pixeleditor.ts index 6d1173c9..fb28ac3d 100644 --- a/src/pixed/pixeleditor.ts +++ b/src/pixed/pixeleditor.ts @@ -523,7 +523,7 @@ export class Palettizer extends PixNode { this.ncolors = 1 << ((fmt.bpp||1) * (fmt.np||1)); } updateLeft() { - this.rgbimgs = this.right.rgbimgs; + if (this.right) { this.rgbimgs = this.right.rgbimgs; } // TODO: check is for unit test, remove? var pal = new RGBAPalette(this.palette); var newimages = this.rgbimgs.map( (im:Uint32Array) => { var out = new Uint8Array(im.length); diff --git a/test/cli/testpixelconvert.js b/test/cli/testpixelconvert.js index 05669699..eb57031b 100644 --- a/test/cli/testpixelconvert.js +++ b/test/cli/testpixelconvert.js @@ -12,23 +12,14 @@ describe('Pixel editor', function() { var fmt = {w:14,h:16,bpp:4,brev:1}; var palfmt = {pal:332,n:16}; - var paldatastr = " 0x00, 0x03, 0x19, 0x50, 0x52, 0x07, 0x1f, 0x37, 0xe0, 0xa4, 0xfd, 0xff, 0x38, 0x70, 0x7f, 0xf8, "; + var paldatastr = " 0x00, 0x03, 0x19, 0x50, 0x52, 0x07, 0x1f, 0x37, 0xe0, 0xa4, 0xfd, 0xff, 0x38, 0x70, 0x7f, 0x7f, "; // test two entries the same var node4 = new pixed.TextDataNode(null, null, null, 0, paldatastr.length); node4.text = paldatastr; var node5 = new pixed.PaletteFormatToRGB(palfmt); node4.addRight(node5); node4.refreshRight(); - var datastr = "1,2, 0x00,0x00,0xef,0xef,0xe0,0x00,0x00, 0x00,0xee,0xee,0xfe,0xee,0xe0,0x00, 0x0e,0xed,0xef,0xef,0xed,0xee,0x00, 0x0e,0xee,0xdd,0xdd,0xde,0xee,0x00, 0x0e,0xee,0xed,0xde,0xee,0xee,0x00, 0x00,0xee,0xee,0xde,0xee,0xe0,0x00, 0x00,0xee,0xee,0xde,0xee,0xe0,0x00, 0x00,0x00,0xed,0xdd,0xe0,0x00,0x0d, 0xdd,0xdd,0xee,0xee,0xed,0xdd,0xd0, 0x0d,0xee,0xee,0xee,0xee,0xee,0x00, 0x0e,0xe0,0xee,0xee,0xe0,0xee,0x00, 0x0e,0xe0,0xee,0xee,0xe0,0xee,0x00, 0x0e,0xe0,0xdd,0xdd,0xd0,0xde,0x00, 0x0d,0x00,0xee,0x0e,0xe0,0x0d,0x00, 0x00,0x00,0xed,0x0e,0xe0,0x00,0x00, 0x00,0x0d,0xdd,0x0d,0xdd,0x00,0x18,"; - var node1 = new pixed.TextDataNode(null, null, null, 0, datastr.length); - node1.text = datastr; - var node2 = new pixed.Mapper(fmt); - node1.addRight(node2); - var node3 = new pixed.Palettizer(null, fmt); - node2.addRight(node3); - node1.refreshRight(); - - assert.deepEqual(node5.palette, [0xff000000, + var expectedPalette = [0xff000000, 0xff000060, 0xff006020, 0xff404000, @@ -43,10 +34,31 @@ describe('Pixel editor', function() { 0xff00e000, 0xff40c000, 0xff40e0e0, - 0xffc0e000, - ]); + 0xff40e0e1, + ]; + assert.deepEqual(node5.palette, expectedPalette); + + var ctx = { + getPalettes: function(ncolors) { + assert.equal(ncolors, node5.palette.length); + return [{palette:node5.palette}]; + } + }; + + var datastr = "1,2, 0x00,0x00,0xef,0xef,0xe0,0x00,0x00, 0x00,0xee,0xee,0xfe,0xee,0xe0,0x00, 0x0e,0xed,0xef,0xef,0xed,0xee,0x00, 0x0e,0xee,0xdd,0xdd,0xde,0xee,0x00, 0x0e,0xee,0xed,0xde,0xee,0xee,0x00, 0x00,0xee,0xee,0xde,0xee,0xe0,0x00, 0x00,0xee,0xee,0xde,0xee,0xe0,0x00, 0x00,0x00,0xed,0xdd,0xe0,0x00,0x0d, 0xdd,0xdd,0xee,0xee,0xed,0xdd,0xd0, 0x0d,0xee,0xee,0xee,0xee,0xee,0x00, 0x0e,0xe0,0xee,0xee,0xe0,0xee,0x00, 0x0e,0xe0,0xee,0xee,0xe0,0xee,0x00, 0x0e,0xe0,0xdd,0xdd,0xd0,0xde,0x00, 0x0d,0x00,0xee,0x0e,0xe0,0x0d,0x00, 0x00,0x00,0xed,0x0e,0xe0,0x00,0x00, 0x00,0x0d,0xdd,0x0d,0xdd,0x00,0x18,"; + var node1 = new pixed.TextDataNode(null, null, null, 0, datastr.length); + node1.text = datastr; + var node2 = new pixed.Mapper(fmt); + node1.addRight(node2); + var node3 = new pixed.Palettizer(ctx, fmt); + node2.addRight(node3); + node1.refreshRight(); + assert.deepEqual(node3.palette, expectedPalette); + assert.deepEqual(node2.images, [[0,0,0,0,14,15,14,15,14,0,0,0,0,0,0,0,14,14,14,14,15,14,14,14,14,0,0,0,0,14,14,13,14,15,14,15,14,13,14,14,0,0,0,14,14,14,13,13,13,13,13,14,14,14,0,0,0,14,14,14,14,13,13,14,14,14,14,14,0,0,0,0,14,14,14,14,13,14,14,14,14,0,0,0,0,0,14,14,14,14,13,14,14,14,14,0,0,0,0,0,0,0,14,13,13,13,14,0,0,0,0,13,13,13,13,13,14,14,14,14,14,13,13,13,13,0,0,13,14,14,14,14,14,14,14,14,14,14,0,0,0,14,14,0,14,14,14,14,14,0,14,14,0,0,0,14,14,0,14,14,14,14,14,0,14,14,0,0,0,14,14,0,13,13,13,13,13,0,13,14,0,0,0,13,0,0,14,14,0,14,14,0,0,13,0,0,0,0,0,0,14,13,0,14,14,0,0,0,0,0,0,0,0,13,13,13,0,13,13,13,0,0,1,8]]); - assert.equal(" 0x00, 0x03, 0x19, 0x50, 0x52, 0x07, 0x1F, 0x37, 0xE0, 0xA4, 0xFD, 0xFF, 0x38, 0x70, 0x7F, 0xF8, ", + assert.equal(" 0x00, 0x03, 0x19, 0x50, 0x52, 0x07, 0x1F, 0x37, 0xE0, 0xA4, 0xFD, 0xFF, 0x38, 0x70, 0x7F, 0x7F, ", pixed.replaceHexWords(paldatastr, pixed.parseHexWords(paldatastr))); + node3.refreshLeft(); + assert.deepEqual(node2.images, [[0,0,0,0,14,15,14,15,14,0,0,0,0,0,0,0,14,14,14,14,15,14,14,14,14,0,0,0,0,14,14,13,14,15,14,15,14,13,14,14,0,0,0,14,14,14,13,13,13,13,13,14,14,14,0,0,0,14,14,14,14,13,13,14,14,14,14,14,0,0,0,0,14,14,14,14,13,14,14,14,14,0,0,0,0,0,14,14,14,14,13,14,14,14,14,0,0,0,0,0,0,0,14,13,13,13,14,0,0,0,0,13,13,13,13,13,14,14,14,14,14,13,13,13,13,0,0,13,14,14,14,14,14,14,14,14,14,14,0,0,0,14,14,0,14,14,14,14,14,0,14,14,0,0,0,14,14,0,14,14,14,14,14,0,14,14,0,0,0,14,14,0,13,13,13,13,13,0,13,14,0,0,0,13,0,0,14,14,0,14,14,0,0,13,0,0,0,0,0,0,14,13,0,14,14,0,0,0,0,0,0,0,0,13,13,13,0,13,13,13,0,0,1,8]]); }); }); diff --git a/tss b/tss index 5b5ee67f..61a1691a 160000 --- a/tss +++ b/tss @@ -1 +1 @@ -Subproject commit 5b5ee67fc06956bc7dce51726e98812d2d897eaa +Subproject commit 61a1691a1de05dca3b694bf603db49ffbaf572cf