Skip to content

Instantly share code, notes, and snippets.

@kobalab
Last active September 3, 2022 00:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kobalab/3ebf866bc2e10ca810a0a20ab83c3dfa to your computer and use it in GitHub Desktop.
Save kobalab/3ebf866bc2e10ca810a0a20ab83c3dfa to your computer and use it in GitHub Desktop.
シャンテン数計算時間計測(1,000,000回)
/*
* シャンテン数計算時間計測(1,000,000回)
*
* 実行方法: npm test xiangting-1M.js -- --no-timeouts
*/
const assert = require('assert');
const Majiang = require('./');
const data1 = require('./test/data/xiangting_1.json');
const data2 = require('./test/data/xiangting_2.json');
const data3 = require('./test/data/xiangting_3.json');
const data4 = require('./test/data/xiangting_4.json');
suite('シャンテン数計算時間計測(1,000,000回)', ()=>{
test('一般手: 1,000,000パターン', ()=>{
for (let i = 0; i < 100; i++) {
for (let data of data1) {
const shoupai = new Majiang.Shoupai(data.q);
assert.equal(Majiang.Util.xiangting(shoupai),
Math.min(...data.x), shoupai);
}
}
});
test('混一手: 1,000,000パターン', ()=>{
for (let i = 0; i < 100; i++) {
for (let data of data2) {
const shoupai = new Majiang.Shoupai(data.q);
assert.equal(Majiang.Util.xiangting(shoupai),
Math.min(...data.x), shoupai);
}
}
});
test('清一手: 1,000,000パターン', ()=>{
for (let i = 0; i < 100; i++) {
for (let data of data3) {
const shoupai = new Majiang.Shoupai(data.q);
assert.equal(Majiang.Util.xiangting(shoupai),
Math.min(...data.x), shoupai);
}
}
});
test('国士手: 1,000,000パターン', ()=>{
for (let i = 0; i < 100; i++) {
for (let data of data4) {
const shoupai = new Majiang.Shoupai(data.q);
assert.equal(Majiang.Util.xiangting(shoupai),
Math.min(...data.x), shoupai);
}
}
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment