mirror of
https://github.com/smogon/pokemon-showdown-client.git
synced 2026-03-21 17:50:29 -05:00
119 lines
3.1 KiB
JavaScript
119 lines
3.1 KiB
JavaScript
const assert = require('assert').strict;
|
|
|
|
try {
|
|
global.BattlePokedex = require('../play.pokemonshowdown.com/data/pokedex.js').BattlePokedex;
|
|
} catch (err) {}
|
|
require('../play.pokemonshowdown.com/js/battle-dex-data.js');
|
|
require('../play.pokemonshowdown.com/js/battle-dex.js');
|
|
require('../play.pokemonshowdown.com/js/battle-tooltips.js');
|
|
|
|
describe('EV Optimizer', () => {
|
|
(global.BattlePokedex ? it : it.skip)('should find the spreads that saves the most EVs', () => {
|
|
const trapinch = BattleStatOptimizer({
|
|
species: "Trapinch",
|
|
nature: "Lax",
|
|
evs: {hp: 204, atk: 252, def: 52},
|
|
level: 100
|
|
}, 'gen9');
|
|
assert.deepStrictEqual(trapinch, {
|
|
evs: {hp: 204, atk: 144, def: 104},
|
|
plus: 'atk',
|
|
minus: 'spd',
|
|
savedEVs: 56,
|
|
});
|
|
|
|
const groudon = BattleStatOptimizer({
|
|
species: "Groudon-Primal",
|
|
nature: "Serious",
|
|
evs: {atk: 252, spa: 156, spe: 100},
|
|
level: 100
|
|
}, 'gen7');
|
|
assert.deepStrictEqual(groudon, {
|
|
evs: {atk: 88, spa: 156, spd: 96, spe: 100},
|
|
plus: 'atk',
|
|
minus: 'spd',
|
|
savedEVs: 68,
|
|
});
|
|
|
|
const thundurus = BattleStatOptimizer({
|
|
species: "Thundurus",
|
|
nature: "Timid",
|
|
evs: {hp: 252, spa: 232, spe: 24},
|
|
ivs: {hp: 31, atk: 2, def: 31, spa: 30, spd: 31, spe: 30},
|
|
level: 50
|
|
}, 'gen5');
|
|
assert.deepStrictEqual(thundurus, {
|
|
evs: {hp: 252, spa: 112, spe: 128},
|
|
plus: 'spa',
|
|
minus: 'atk',
|
|
savedEVs: 16,
|
|
});
|
|
|
|
const amoonguss = BattleStatOptimizer({
|
|
species: "Amoonguss",
|
|
nature: "Bold",
|
|
evs: {hp: 252, def: 100, spd: 156},
|
|
level: 50
|
|
}, 'gen9');
|
|
assert.deepStrictEqual(amoonguss, {
|
|
evs: {hp: 252, def: 180, spd: 76},
|
|
plus: 'spd',
|
|
minus: 'atk',
|
|
savedEVs: 0,
|
|
});
|
|
|
|
const avalugg = BattleStatOptimizer({
|
|
species: "Avalugg",
|
|
nature: "Hasty",
|
|
evs: {hp: 56, atk: 200, def: 252},
|
|
level: 100
|
|
}, 'gen9');
|
|
assert.deepStrictEqual(avalugg, {
|
|
evs: {hp: 56, atk: 84, def: 64, spe: 84},
|
|
plus: 'atk',
|
|
minus: 'spe',
|
|
savedEVs: 220,
|
|
});
|
|
|
|
const mew = BattleStatOptimizer({
|
|
species: "Mew",
|
|
nature: "Sassy",
|
|
evs: {hp: 24, atk: 92, def: 92, spa: 92, spd: 104, spe: 104},
|
|
level: 100
|
|
}, 'gen9');
|
|
assert.deepStrictEqual(mew, {
|
|
evs: {hp: 24, atk: 92, def: 92, spa: 92, spd: 208},
|
|
savedEVs: 0,
|
|
});
|
|
|
|
const mew2 = BattleStatOptimizer({
|
|
species: "Mew",
|
|
nature: "Sassy",
|
|
evs: {hp: 24, atk: 92, def: 92, spa: 92, spd: 144, spe: 64},
|
|
level: 100
|
|
}, 'gen9');
|
|
assert.equal(mew2, null);
|
|
|
|
const greatTusk = BattleStatOptimizer({
|
|
species: "Great Tusk",
|
|
nature: "Jolly",
|
|
evs: {hp: 136, atk: 92, def: 100, spd: 72, spe: 108},
|
|
level: 100
|
|
}, 'gen9');
|
|
assert.deepStrictEqual(greatTusk, {
|
|
evs: {hp: 136, atk: 92, spd: 72, spe: 200},
|
|
plus: 'def',
|
|
minus: 'spa',
|
|
savedEVs: 8,
|
|
});
|
|
|
|
const mienfoo = BattleStatOptimizer({
|
|
species: "Mienfoo",
|
|
nature: "Jolly",
|
|
evs: {atk: 236, def: 116, spe: 156},
|
|
level: 5
|
|
}, 'gen9');
|
|
assert.equal(mienfoo, null);
|
|
});
|
|
});
|