python-archieve-projects/WechatBot/node_modules/@jimp/plugin-rotate/test/rotation.test.js

637 lines
15 KiB
JavaScript
Executable File

import { Jimp, mkJGD } from "@jimp/test-utils";
import configure from "@jimp/custom";
import blit from "@jimp/plugin-blit";
import crop from "@jimp/plugin-crop";
import resize from "@jimp/plugin-resize";
import rotate from "../src";
const jimp = configure({ plugins: [rotate, blit, crop, resize] }, Jimp);
describe("Rotate a image with even size", () => {
let imgSrc = null;
before((done) => {
jimp
.read(
mkJGD(
"▰▴▴▴▪▪▪▰",
"▴▴▴▴▪▪▪▪",
"▴▴▴▴▪▪▪▪",
"▴▴▴▴▪▪▪▪",
"▪▪▪▪▴▴▴▴",
"▪▪▪▪▴▴▴▴",
"▪▪▪▪▴▴▴▴",
"▦▪▪▪▴▴▴▦"
)
)
.then((imgJimp) => {
imgSrc = imgJimp;
done();
})
.catch(done);
});
it("1 degrees", () => {
imgSrc
.clone()
.rotate(1, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
"▰▴▴▴▪▪▪▰ ",
"▴▴▴▴▪▪▪▪ ",
"▴▴▴▴▪▪▪▪ ",
"▴▴▴▴▪▪▪▪ ",
"▪▪▪▪▴▴▴▴ ",
"▪▪▪▪▴▴▴▴ ",
"▪▪▪▪▴▴▴▴ ",
"▦▪▪▪▴▴▴▦ ",
" ",
" "
)
);
});
it("91 degrees", () => {
imgSrc
.clone()
.rotate(91, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ",
"▰▪▪▪▴▴▴▦ ",
"▪▪▪▪▴▴▴▴ ",
"▪▪▪▪▴▴▴▴ ",
"▪▪▪▪▴▴▴▴ ",
"▴▴▴▴▪▪▪▪ ",
"▴▴▴▴▪▪▪▪ ",
"▴▴▴▴▪▪▪▪ ",
"▰▴▴▴▪▪▪▦ ",
" "
)
);
});
it("30 degrees", () => {
imgSrc
.clone()
.rotate(30, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ▰▰ ",
" ▪▪▪▪ ",
" ▴▪▪▪▪▪ ",
"▴▴▴▴▪▪▪▪ ",
"▴▴▴▴▪▪▴▴▴ ",
"▴▴▴▴▪▴▴▴▴▴ ",
" ▴▴▪▪▴▴▴▴▦ ",
" ▪▪▪▪▪▴▴▴ ",
" ▪▪▪▪▪ ",
" ▪▪▪ ",
" ▦ ",
" "
)
);
});
it("45 degrees", () => {
imgSrc
.clone()
.rotate(45, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ",
" ▰ ",
" ▪▪▪ ",
" ▪▪▪▪▪ ",
" ▴▴▪▪▪▪▴ ",
" ▴▴▴▴▪▪▴▴▴ ",
"▰▰▴▴▴▴▴▴▴▴▦ ",
" ▴▴▴▴▪▪▴▴▴ ",
" ▴▴▪▪▪▪▴ ",
" ▪▪▪▪▪ ",
" ▪▪▪ ",
" ▦ ",
" ",
" "
)
);
});
it("60 degrees", () => {
imgSrc
.clone()
.rotate(60, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ▰ ",
" ▪▪▪ ",
" ▪▪▪▪▪ ",
" ▪▪▪▪▪▴▴▴ ",
" ▴▴▪▪▴▴▴▴▦ ",
"▴▴▴▴▪▴▴▴▴▴ ",
"▴▴▴▴▪▪▴▴▴ ",
"▴▴▴▴▪▪▪▪ ",
" ▴▪▪▪▪▪ ",
" ▪▪▪▪ ",
" ▦▦ ",
" "
)
);
});
it("90 degrees", () => {
imgSrc
.clone()
.rotate(90, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ",
"▰▪▪▪▴▴▴▦ ",
"▪▪▪▪▴▴▴▴ ",
"▪▪▪▪▴▴▴▴ ",
"▪▪▪▪▴▴▴▴ ",
"▴▴▴▴▪▪▪▪ ",
"▴▴▴▴▪▪▪▪ ",
"▴▴▴▴▪▪▪▪ ",
"▰▴▴▴▪▪▪▦ ",
" "
)
);
});
it("120 degrees", () => {
imgSrc
.clone()
.rotate(120, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ",
" ▴▦ ",
" ▴▴▴▴ ",
" ▪▪▴▴▴▴ ",
"▰▪▪▪▴▴▴▴▪ ",
"▰▪▪▪▪▴▴▪▪▪ ",
" ▪▪▪▪▪▪▪▪▪ ",
" ▪▪▴▴▴▪▪▪▪▦ ",
" ▴▴▴▴▴▪▪ ",
" ▴▴▴▴▪ ",
" ▴▴▴ ",
" "
)
);
});
it("135 degrees", () => {
imgSrc
.clone()
.rotate(135, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ",
" ",
" ▦ ",
" ▴▴▴ ",
" ▴▴▴▴▴ ",
" ▪▪▴▴▴▪▪ ",
" ▪▪▪▪▴▪▪▪▪ ",
" ▰▪▪▪▪▴▪▪▪▪▦ ",
" ▪▪▪▴▴▴▪▪▪ ",
" ▪▴▴▴▴▴▪ ",
" ▴▴▴▴▴ ",
" ▴▰▴ ",
" ▰ ",
" "
)
);
});
it("180 degrees", () => {
imgSrc
.clone()
.rotate(180, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ",
" ▦▴▴▴▪▪▪▦ ",
" ▴▴▴▴▪▪▪▪ ",
" ▴▴▴▴▪▪▪▪ ",
" ▴▴▴▴▪▪▪▪ ",
" ▪▪▪▪▴▴▴▴ ",
" ▪▪▪▪▴▴▴▴ ",
" ▪▪▪▪▴▴▴▴ ",
" ▰▪▪▪▴▴▴▰ ",
" "
)
);
});
it("225 degrees", () => {
imgSrc
.clone()
.rotate(225, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ",
" ▦ ",
" ▪▪▪ ",
" ▪▪▪▪▪ ",
" ▴▪▪▪▪▴▴ ",
" ▴▴▴▪▪▴▴▴▴ ",
" ▦▴▴▴▴▴▴▴▴▰▰ ",
" ▴▴▴▪▪▴▴▴▴ ",
" ▴▪▪▪▪▴▴ ",
" ▪▪▪▪▪ ",
" ▪▪▪ ",
" ▰ ",
" ",
" "
)
);
});
it("270 degrees", () => {
imgSrc
.clone()
.rotate(270, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ▦▪▪▪▴▴▴▰ ",
" ▪▪▪▪▴▴▴▴ ",
" ▪▪▪▪▴▴▴▴ ",
" ▪▪▪▪▴▴▴▴ ",
" ▴▴▴▴▪▪▪▪ ",
" ▴▴▴▴▪▪▪▪ ",
" ▴▴▴▴▪▪▪▪ ",
" ▦▴▴▴▪▪▪▰ ",
" ",
" "
)
);
});
it("315 degrees", () => {
imgSrc
.clone()
.rotate(315, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ▰ ",
" ▴▰▴ ",
" ▴▴▴▴▴ ",
" ▪▴▴▴▴▴▪ ",
" ▪▪▪▴▴▴▪▪▪ ",
" ▦▪▪▪▪▴▪▪▪▪▰ ",
" ▪▪▪▪▴▪▪▪▪ ",
" ▪▪▴▴▴▪▪ ",
" ▴▴▴▴▴ ",
" ▴▴▴ ",
" ▦ ",
" ",
" ",
" "
)
);
});
it("360 degrees", () => {
imgSrc
.clone()
.rotate(360, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
"▰▴▴▴▪▪▪▰ ",
"▴▴▴▴▪▪▪▪ ",
"▴▴▴▴▪▪▪▪ ",
"▴▴▴▴▪▪▪▪ ",
"▪▪▪▪▴▴▴▴ ",
"▪▪▪▪▴▴▴▴ ",
"▪▪▪▪▴▴▴▴ ",
"▦▪▪▪▴▴▴▦ ",
" ",
" "
)
);
});
});
describe("Rotate a image with odd size", () => {
let imgSrc = null;
before((done) => {
jimp
.read(
mkJGD(
"▴▴▴▦▪▪▪",
"▴▴▴▦▪▪▪",
"▴▴▴▦▪▪▪",
"▦▦▦▦▦▦▦",
"▴▴▴▦▴▴▴",
"▴▴▴▦▴▴▴",
"▴▴▴▦▴▴▴"
)
)
.then((imgJimp) => {
imgSrc = imgJimp;
done();
})
.catch(done);
});
it("45 degrees", () => {
imgSrc
.clone()
.rotate(45, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ",
" ▪ ",
" ▪▪▪ ",
" ▦▪▪▪▦ ",
" ▴▴▦▪▦▴▴ ",
" ▴▴▴▴▦▴▴▴▴ ",
" ▴▴▦▴▦▴▴ ",
" ▦▴▴▴▦ ",
" ▴▴▴ ",
" ▴ ",
" ",
" "
)
);
});
it("135 degrees", () => {
imgSrc
.clone()
.rotate(135, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ",
" ▴ ",
" ▴▴▴ ",
" ▦▴▴▴▦ ",
" ▪▪▦▴▦▴▴ ",
" ▪▪▪▪▦▴▴▴▴ ",
" ▪▪▦▴▦▴▴ ",
" ▦▴▴▴▦ ",
" ▴▴▴ ",
" ▴ ",
" ",
" "
)
);
});
it("225 degrees", () => {
imgSrc
.clone()
.rotate(225, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ",
" ▴ ",
" ▴▴▴ ",
" ▦▴▴▴▦ ",
" ▴▴▦▴▦▴▴ ",
" ▴▴▴▴▦▴▴▴▴ ",
" ▴▴▦▪▦▴▴ ",
" ▦▪▪▪▦ ",
" ▪▪▪ ",
" ▪ ",
" ",
" "
)
);
});
it("315 degrees", () => {
imgSrc
.clone()
.rotate(315, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ",
" ▴ ",
" ▴▴▴ ",
" ▦▴▴▴▦ ",
" ▴▴▦▴▦▪▪ ",
" ▴▴▴▴▦▪▪▪▪ ",
" ▴▴▦▴▦▪▪ ",
" ▦▴▴▴▦ ",
" ▴▴▴ ",
" ▴ ",
" ",
" "
)
);
});
});
describe("Rotate a non-square image", () => {
let imgSrc = null;
before((done) => {
jimp
.read(mkJGD("▴▴▴▴▪▪▪▪", "▴▴▴▴▪▪▪▪", "▦▦▦▦▴▴▴▴", "▦▦▦▦▴▴▴▴"))
.then((imgJimp) => {
imgSrc = imgJimp;
done();
})
.catch(done);
});
it("1 degrees", () => {
imgSrc
.clone()
.rotate(1, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
"▴▴▴▴▪▪▪▪ ",
"▴▴▴▴▪▪▪▪ ",
"▦▦▦▦▴▴▴▴ ",
"▦▦▦▦▴▴▴▴ ",
" ",
" "
)
);
});
it("10 degrees", () => {
imgSrc
.clone()
.rotate(10, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ▪ ",
" ▴▴▴▪▪▪▪ ",
"▴▴▴▴▪▪▪▴ ",
"▴▴▦▦▴▴▴▴ ",
"▦▦▦▦▴▴▴ ",
"▦▦ ",
" ",
" "
)
);
});
it("30 degrees", () => {
imgSrc
.clone()
.rotate(30, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ",
" ▪▪ ",
" ▪▪▪▪ ",
" ▴▴▪▪▴▴▴ ",
"▴▴▴▦▴▴▴ ",
"▴▴▦▦▴▴ ",
"▦▦▦▦ ",
" ▦ ",
" ",
" "
)
);
});
it("45 degrees", () => {
imgSrc
.clone()
.rotate(45, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ",
" ▪▪ ",
" ▪▪▪▴ ",
" ▴▪▪▴▴▴ ",
" ▴▴▴▴▴▴ ",
"▴▴▴▦▦▴ ",
"▴▴▦▦▦ ",
" ▦▦▦ ",
" ▦ ",
" "
)
);
});
it("90 degrees", () => {
imgSrc
.clone()
.rotate(90, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ",
"▪▪▴▴ ",
"▪▪▴▴ ",
"▪▪▴▴ ",
"▪▪▴▴ ",
"▴▴▦▦ ",
"▴▴▦▦ ",
"▴▴▦▦ ",
"▴▴▦▦ ",
" "
)
);
});
it("135 degrees", () => {
imgSrc
.clone()
.rotate(135, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ",
" ▴ ",
" ▴▴▴ ",
" ▪▪▴▴▴ ",
" ▪▪▪▴▦▦ ",
" ▪▪▴▦▦▦ ",
" ▴▴▴▦▦▦ ",
" ▴▴▴▦ ",
" ▴▴ ",
" "
)
);
});
it("180 degrees", () => {
imgSrc
.clone()
.rotate(180, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ",
" ▴▴▴▴▦▦▦▦ ",
" ▴▴▴▴▦▦▦▦ ",
" ▪▪▪▪▴▴▴▴ ",
" ▪▪▪▪▴▴▴▴ ",
" "
)
);
});
it("225 degrees", () => {
imgSrc
.clone()
.rotate(225, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ▦ ",
" ▦▦▦ ",
" ▦▦▦▴▴ ",
" ▴▦▦▴▴▴ ",
" ▴▴▴▴▴▴ ",
" ▴▴▴▪▪▴ ",
" ▴▪▪▪ ",
" ▪▪ ",
" ",
" "
)
);
});
it("315 degrees", () => {
imgSrc
.clone()
.rotate(315, true)
.getJGDSync()
.should.be.sameJGD(
mkJGD(
" ▴▴ ",
" ▦▴▴▴ ",
"▦▦▦▴▴▴ ",
" ▦▦▦▴▪▪ ",
" ▦▦▴▪▪▪ ",
" ▴▴▴▪▪ ",
" ▴▴▴ ",
" ▴ ",
" ",
" "
)
);
});
});