SpriteList*list;Sprite*sprite;SpriteAction*act;SpriteFrame*frame;SpriteLayer*layer;Pointoffset=bevec(1.0,2.0);sprite=sprite_new(1);list=spritelist_new();TEST_NOTNULL(list);TEST_NOTNULL(spritelist_getornew(list,123));TEST_NOTNULL(sprite);TEST_NULL(sprite_action(sprite,0));TEST_NULL(sprite_action(sprite,1));TEST_NULL(sprite_frame(sprite,1,2));TEST_NULL(sprite_layer(sprite,1,2,3));act=sprite_newaction(sprite,0,SPRITE_NORTH,SPRITE_ACTIVE);TEST_NOTNULL(act);TEST_PTREQ(act,sprite_action(sprite,0));act=sprite_newaction(sprite,0,SPRITE_NORTH,SPRITE_ACTIVE);TEST_NOTNULL(act);TEST_PTREQ(act,sprite_action(sprite,0));frame=sprite_newframe(sprite,0,1,SPRITE_ACTIVE,0.25);TEST_NOTNULL(frame);TEST_PTREQ(frame,sprite_frame(sprite,0,1));layer=sprite_newlayer(sprite,0,1,2,NULL,offset);TEST_NOTNULL(layer);TEST_PTREQ(layer,sprite_layer(sprite,0,1,2));/* Check if out of bounds new works and doesn't leak. */act=sprite_newaction(sprite,100,SPRITE_NORTH,SPRITE_ACTIVE);TEST_NULL(act);layer=sprite_newlayer(sprite,0,1,22,NULL,offset);TEST_NULL(layer);TEST_PTREQ(layer,sprite_layer(sprite,0,1,22));frame=sprite_newframe(sprite,0,111,SPRITE_ACTIVE,0.25);TEST_NULL(frame);layer=sprite_newlayer(sprite,0,1,222,NULL,offset);TEST_NULL(layer);TEST_NOTNULL(sprite_maxactions_(sprite,77));TEST_INTEQ(77,sprite_maxactions(sprite));act=sprite_newaction(sprite,60,SPRITE_NORTH,SPRITE_ACTIVE);TEST_NOTNULL(sprite_action(sprite,60));TEST_NOTNULL(sprite_maxactions_(sprite,1));TEST_NULL(sprite_action(sprite,60));TEST_INTEQ(1,sprite_maxactions(sprite));TEST_NOTNULL(sprite_action(sprite,0));act=sprite_action(sprite,0);if(act){TEST_NOTNULL(spriteaction_maxframes_(act,3));}spritelist_free(list);sprite_free(sprite);