gw2e-account-statistics 3.8.0 → 3.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.history/tests/{items.spec_20230225211005.js → items.spec_20240101205832.js} +10 -3
- package/.history/tests/{items.spec_20230225211040.js → items.spec_20240101205834.js} +7 -0
- package/.history/tests/{items.spec_20230225211035.js → items.spec_20240101210112.js} +9 -2
- package/.history/tests/{items.spec_20230225211015.js → items.spec_20240101210127.js} +12 -3
- package/.history/tests/unlocks.spec_20240104200535.js +258 -0
- package/.history/tests/{unlocks.spec_20210822152859.js → unlocks.spec_20240104200640.js} +51 -2
- package/.history/tests/{unlocks.spec_20210822152936.js → unlocks.spec_20240104200653.js} +43 -2
- package/.history/tests/{unlocks.spec_20210822152930.js → unlocks.spec_20240104200659.js} +44 -3
- package/.history/tests/{unlocks.spec_20210822152952.js → unlocks.spec_20240104200705.js} +38 -0
- package/build/statistics/items.js +2 -0
- package/build/statistics/progression.js +1 -0
- package/build/statistics/unlocks.js +30 -0
- package/package.json +1 -1
- package/tests/aggregate.spec.js +4 -1
- package/tests/items.spec.js +6 -1
- package/tests/progression.spec.js +8 -0
- package/tests/unlocks.spec.js +38 -0
- package/.history/tests/items.spec_20230225210556.js +0 -908
- package/.history/tests/items.spec_20230225210926.js +0 -917
|
@@ -1,908 +0,0 @@
|
|
|
1
|
-
/* eslint-env node, mocha */
|
|
2
|
-
import { expect } from 'chai'
|
|
3
|
-
import itemsStatistics from '../src/statistics/items'
|
|
4
|
-
|
|
5
|
-
const generateAccount = (items) => {
|
|
6
|
-
return {
|
|
7
|
-
bank: items.slice(0, 1),
|
|
8
|
-
characters: [{
|
|
9
|
-
name: 'Holds items',
|
|
10
|
-
equipment: [],
|
|
11
|
-
bags: [
|
|
12
|
-
{inventory: items.slice(1)}
|
|
13
|
-
]
|
|
14
|
-
}]
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
describe('statistics > items', () => {
|
|
19
|
-
it('exits out when one of the permissions is missing', () => {
|
|
20
|
-
const emptyObject = {
|
|
21
|
-
baubleInfusions: null,
|
|
22
|
-
brokenSpoons: null,
|
|
23
|
-
shinyBaubles: null,
|
|
24
|
-
chakEggSacks: null,
|
|
25
|
-
fractalTonics: null,
|
|
26
|
-
ghostlyInfusions: null,
|
|
27
|
-
legendaryItems: null,
|
|
28
|
-
legendaryItemsWeapon: null,
|
|
29
|
-
legendaryItemsArmor: null,
|
|
30
|
-
legendaryItemsBack: null,
|
|
31
|
-
legendaryItemsTrinket: null,
|
|
32
|
-
luminescentRefractors: null,
|
|
33
|
-
preservedQueenBees: null,
|
|
34
|
-
permanentTools: null,
|
|
35
|
-
whiteMantlePortalDevices: null,
|
|
36
|
-
blackLionClaimTickets: null,
|
|
37
|
-
instruments: null,
|
|
38
|
-
musicBoxes: null,
|
|
39
|
-
chakEggs: null,
|
|
40
|
-
fossilizedInsects: null,
|
|
41
|
-
reclaimedMetalPlates: null,
|
|
42
|
-
championBags: null,
|
|
43
|
-
tripleTroubleChests: null,
|
|
44
|
-
tequatlChests: null,
|
|
45
|
-
vbHerosChoice: null,
|
|
46
|
-
tdHerosChoice: null,
|
|
47
|
-
abHerosChoice: null,
|
|
48
|
-
dsHerosChoice: null,
|
|
49
|
-
crystalOasisHerosChoice: null,
|
|
50
|
-
elonRiverlandsHerosChoice: null,
|
|
51
|
-
theDesolationHerosChoice: null,
|
|
52
|
-
domainOfVabbiHerosChoice: null,
|
|
53
|
-
uniqueTonics: null,
|
|
54
|
-
bloodRubies: null,
|
|
55
|
-
petrifiedWood: null,
|
|
56
|
-
tomesOfKnowledge: null,
|
|
57
|
-
permanentContracts: null,
|
|
58
|
-
freshWinterberries: null,
|
|
59
|
-
wintersHeartInfusions: null,
|
|
60
|
-
kodasWarmthEnrichment: null,
|
|
61
|
-
phospholuminescentInfusions: null,
|
|
62
|
-
gemstoreToys: null,
|
|
63
|
-
blackLionMiniatureClaimTickets: null,
|
|
64
|
-
jadeShards: null,
|
|
65
|
-
giftsOfExploration: null,
|
|
66
|
-
giftsOfBattle: null,
|
|
67
|
-
dragoniteOre: null,
|
|
68
|
-
bloodstoneDust: null,
|
|
69
|
-
empyrealFragments: null,
|
|
70
|
-
crystallineOre: null,
|
|
71
|
-
airshipOil: null,
|
|
72
|
-
auricDust: null,
|
|
73
|
-
leyLineSparks: null,
|
|
74
|
-
_luckFromItems: null,
|
|
75
|
-
legendarySpikes: null,
|
|
76
|
-
fireOrchidBlossoms: null,
|
|
77
|
-
orrianPearls: null,
|
|
78
|
-
liquidAurillium: null,
|
|
79
|
-
celestialInfusion: null,
|
|
80
|
-
celestialInfusionRed: null,
|
|
81
|
-
celestialInfusionBlue: null,
|
|
82
|
-
frostLegionInfusion: null,
|
|
83
|
-
abyssalInfusion: null,
|
|
84
|
-
ottersBlessingEnrichment: null,
|
|
85
|
-
celebratoryBirthdayEnrichment: null,
|
|
86
|
-
festiveConfettiInfusions: null,
|
|
87
|
-
emberInfusions: null,
|
|
88
|
-
mysticInfusions: null,
|
|
89
|
-
peerlessInfusions: null,
|
|
90
|
-
toyShellInfusions: null,
|
|
91
|
-
kralkatiteOre: null,
|
|
92
|
-
potionOfPvpRewards: null,
|
|
93
|
-
potionOfWvwRewards: null,
|
|
94
|
-
skirmishChests: null,
|
|
95
|
-
difluoriteCrystals: null,
|
|
96
|
-
eitriteIngots: null,
|
|
97
|
-
kites: null,
|
|
98
|
-
snowDiamondInfusions: null,
|
|
99
|
-
inscribedShards: null,
|
|
100
|
-
lumpsOfMistonium: null,
|
|
101
|
-
brandedMass: null,
|
|
102
|
-
mistbornMote: null,
|
|
103
|
-
hatchedChili: null,
|
|
104
|
-
eternalIceShard: null,
|
|
105
|
-
crystalInfusions: null,
|
|
106
|
-
polysaturatingInfusions: null,
|
|
107
|
-
silverwastesShovels: null,
|
|
108
|
-
thirtyTwoSlotBags: null,
|
|
109
|
-
flyingCowTokens: null,
|
|
110
|
-
heartOfTheKhanUr: null,
|
|
111
|
-
brokenTwig: null,
|
|
112
|
-
warmStone: null,
|
|
113
|
-
crumblingBone: null,
|
|
114
|
-
mangledTalon: null,
|
|
115
|
-
clumpOfResin: null,
|
|
116
|
-
emblemOfTheAvenger: null,
|
|
117
|
-
emblemOfTheConqueror: null,
|
|
118
|
-
emblemOfTournamentVictory: null,
|
|
119
|
-
emblemOfVictory: null,
|
|
120
|
-
_unstableFractalEssenceFromItems: null,
|
|
121
|
-
chestOfDungeoneering: null,
|
|
122
|
-
deldrimorStoneskinInfusions: null,
|
|
123
|
-
jormagEyeInfusions: null,
|
|
124
|
-
primordusEyeInfusions: null,
|
|
125
|
-
_legendaryInsightsFromItems: null,
|
|
126
|
-
_legendaryDivinationsFromItems: null
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
const bothPermissions = {bank: null, characters: null}
|
|
130
|
-
expect(itemsStatistics(bothPermissions)).to.deep.equal(emptyObject)
|
|
131
|
-
|
|
132
|
-
const inventoriesPermission = {bank: null, characters: [{name: 'Yo'}]}
|
|
133
|
-
expect(itemsStatistics(inventoriesPermission)).to.deep.equal(emptyObject)
|
|
134
|
-
|
|
135
|
-
const charactersPermission = {bank: [{id: 30687}], characters: null}
|
|
136
|
-
expect(itemsStatistics(charactersPermission)).to.deep.equal(emptyObject)
|
|
137
|
-
})
|
|
138
|
-
|
|
139
|
-
it('can calculate legendary count', () => {
|
|
140
|
-
const account = generateAccount([
|
|
141
|
-
{id: 123, count: 1},
|
|
142
|
-
{id: 30687, count: 1}, // 1
|
|
143
|
-
{id: 71383, count: 1}, // 2
|
|
144
|
-
{id: 1, count: 1},
|
|
145
|
-
{id: 80205, count: 1}, // 3
|
|
146
|
-
{id: 77474, count: 1} // 4
|
|
147
|
-
])
|
|
148
|
-
|
|
149
|
-
account.characters[0].last_modified = new Date('2021-07-24T12:00:00.000Z')
|
|
150
|
-
account.characters[0].equipment = [
|
|
151
|
-
{id: 80205},
|
|
152
|
-
{id: 71383, location: 'EquippedFromLegendaryArmory'}
|
|
153
|
-
] // Ignored
|
|
154
|
-
|
|
155
|
-
account.legendaryarmory = [{id: 80205, count: 2}] // 5 + 6
|
|
156
|
-
|
|
157
|
-
expect(itemsStatistics(account).legendaryItems).to.equal(6)
|
|
158
|
-
})
|
|
159
|
-
|
|
160
|
-
it('can calculate legendary weapon count', () => {
|
|
161
|
-
expect(itemsStatistics(generateAccount([
|
|
162
|
-
{id: 123, count: 1},
|
|
163
|
-
{id: 30687, count: 1},
|
|
164
|
-
{id: 71383, count: 1},
|
|
165
|
-
{id: 1, count: 1},
|
|
166
|
-
{id: 7, count: 1},
|
|
167
|
-
{id: 77474, count: 1}
|
|
168
|
-
])).legendaryItemsWeapon).to.equal(2)
|
|
169
|
-
})
|
|
170
|
-
|
|
171
|
-
it('can calculate legendary armor count', () => {
|
|
172
|
-
expect(itemsStatistics(generateAccount([
|
|
173
|
-
{id: 123, count: 1},
|
|
174
|
-
{id: 80254, count: 1},
|
|
175
|
-
{id: 80277, count: 1},
|
|
176
|
-
{id: 1, count: 1},
|
|
177
|
-
{id: 7, count: 1},
|
|
178
|
-
{id: 77474, count: 1}
|
|
179
|
-
])).legendaryItemsArmor).to.equal(2)
|
|
180
|
-
})
|
|
181
|
-
|
|
182
|
-
it('can calculate legendary back count', () => {
|
|
183
|
-
expect(itemsStatistics(generateAccount([
|
|
184
|
-
{id: 123, count: 1},
|
|
185
|
-
{id: 74155, count: 1},
|
|
186
|
-
{id: 80277, count: 1},
|
|
187
|
-
{id: 1, count: 1},
|
|
188
|
-
{id: 30704, count: 1},
|
|
189
|
-
{id: 77474, count: 1}
|
|
190
|
-
])).legendaryItemsBack).to.equal(2)
|
|
191
|
-
})
|
|
192
|
-
|
|
193
|
-
it('can calculate legendary trinket count', () => {
|
|
194
|
-
expect(itemsStatistics(generateAccount([
|
|
195
|
-
{id: 123, count: 1},
|
|
196
|
-
{id: 74155, count: 1},
|
|
197
|
-
{id: 80277, count: 1},
|
|
198
|
-
{id: 1, count: 1},
|
|
199
|
-
{id: 81908, count: 1},
|
|
200
|
-
{id: 77474, count: 1}
|
|
201
|
-
])).legendaryItemsTrinket).to.equal(1)
|
|
202
|
-
})
|
|
203
|
-
|
|
204
|
-
it('can calculate fractal tonic count', () => {
|
|
205
|
-
expect(itemsStatistics(generateAccount([
|
|
206
|
-
{id: 49277, count: 1},
|
|
207
|
-
{id: 30687, count: 1},
|
|
208
|
-
{id: 71383, count: 1},
|
|
209
|
-
{id: 49277, count: 1},
|
|
210
|
-
{id: 49277, count: 1}
|
|
211
|
-
])).fractalTonics).to.equal(3)
|
|
212
|
-
})
|
|
213
|
-
|
|
214
|
-
it('can calculate legendary insight count', () => {
|
|
215
|
-
const items = {
|
|
216
|
-
// Heavy Ascended
|
|
217
|
-
RefinedEnvoyHelmet: 80387,
|
|
218
|
-
RefinedEnvoyPauldrons: 80236,
|
|
219
|
-
RefinedEnvoyBreastplate: 80648,
|
|
220
|
-
RefinedEnvoyGauntlets: 80673,
|
|
221
|
-
RefinedEnvoyTassets: 80427,
|
|
222
|
-
RefinedEnvoyGreaves: 80127,
|
|
223
|
-
|
|
224
|
-
// Medium Ascended
|
|
225
|
-
RefinedEnvoyMask: 80634,
|
|
226
|
-
RefinedEnvoyShoulderpads: 80366,
|
|
227
|
-
RefinedEnvoyJerkin: 80607,
|
|
228
|
-
RefinedEnvoyVambraces: 80658,
|
|
229
|
-
RefinedEnvoyLeggings: 80675,
|
|
230
|
-
RefinedEnvoyBoots: 80177,
|
|
231
|
-
|
|
232
|
-
// Light Ascended
|
|
233
|
-
RefinedEnvoyCowl: 80441,
|
|
234
|
-
RefinedEnvoyMantle: 80264,
|
|
235
|
-
RefinedEnvoyVestments: 80120,
|
|
236
|
-
RefinedEnvoyGloves: 80460,
|
|
237
|
-
RefinedEnvoyPants: 80275,
|
|
238
|
-
RefinedEnvoyShoes: 80583,
|
|
239
|
-
|
|
240
|
-
// Heavy Legendary
|
|
241
|
-
PerfectedEnvoyHelmet: 80384,
|
|
242
|
-
PerfectedEnvoyPauldrons: 80435,
|
|
243
|
-
PerfectedEnvoyBreastplate: 80254,
|
|
244
|
-
PerfectedEnvoyGauntlets: 80205,
|
|
245
|
-
PerfectedEnvoyTassets: 80277,
|
|
246
|
-
PerfectedEnvoyGreaves: 80557,
|
|
247
|
-
|
|
248
|
-
// Medium Legendary
|
|
249
|
-
PerfectedEnvoyMask: 80296,
|
|
250
|
-
PerfectedEnvoyShoulderpads: 80145,
|
|
251
|
-
PerfectedEnvoyJerkin: 80578,
|
|
252
|
-
PerfectedEnvoyVambraces: 80161,
|
|
253
|
-
PerfectedEnvoyLeggings: 80252,
|
|
254
|
-
PerfectedEnvoyBoots: 80281,
|
|
255
|
-
|
|
256
|
-
// Light Legendary
|
|
257
|
-
PerfectedEnvoyCowl: 80248,
|
|
258
|
-
PerfectedEnvoyMantle: 80131,
|
|
259
|
-
PerfectedEnvoyVestments: 80190,
|
|
260
|
-
PerfectedEnvoyGloves: 80111,
|
|
261
|
-
PerfectedEnvoyPants: 80356,
|
|
262
|
-
PerfectedEnvoyShoes: 80399
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
function countFromList (itemList) {
|
|
266
|
-
const account = generateAccount(itemList.map(id => ({id, count: 1})))
|
|
267
|
-
return itemsStatistics(account)._legendaryInsightsFromItems
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
// Count the basic items
|
|
271
|
-
expect(itemsStatistics(generateAccount([
|
|
272
|
-
{id: 80516, count: 3}, // Envoy Insignia => 25 each
|
|
273
|
-
{id: 78989, count: 1}, // Gift of Prowess => 25 each
|
|
274
|
-
{id: 77302, count: 7} // Legendary Insight => 1 each
|
|
275
|
-
]))._legendaryInsightsFromItems, 'basic items').to.equal(3 * 25 + 25 + 7)
|
|
276
|
-
|
|
277
|
-
// Count the full first ascended set (from the achievement, so no LI spent)
|
|
278
|
-
const oneWeightAscendedSet = [
|
|
279
|
-
items.RefinedEnvoyHelmet, items.RefinedEnvoyPauldrons, items.RefinedEnvoyBreastplate,
|
|
280
|
-
items.RefinedEnvoyGauntlets, items.RefinedEnvoyTassets, items.RefinedEnvoyGreaves
|
|
281
|
-
]
|
|
282
|
-
expect(countFromList(oneWeightAscendedSet), 'oneWeightAscendedSet')
|
|
283
|
-
.to.equal(0)
|
|
284
|
-
|
|
285
|
-
// Count the full first ascended set (from the achievement, so no LI spent)
|
|
286
|
-
// and some extra ascended items that got crafted via 25 LI insignias
|
|
287
|
-
const oneWeightAscendedSetPlusExtra = [
|
|
288
|
-
items.RefinedEnvoyHelmet, items.RefinedEnvoyPauldrons, items.RefinedEnvoyBreastplate,
|
|
289
|
-
items.RefinedEnvoyGauntlets, items.RefinedEnvoyTassets, items.RefinedEnvoyGreaves,
|
|
290
|
-
items.RefinedEnvoyHelmet, items.RefinedEnvoyCowl // one of the same weight, one in a different one
|
|
291
|
-
]
|
|
292
|
-
expect(countFromList(oneWeightAscendedSetPlusExtra), 'oneWeightAscendedSetPlusExtra')
|
|
293
|
-
.to.equal(25 + 25)
|
|
294
|
-
|
|
295
|
-
// Count all first ascended sets (one from the achievement, so no LI spent and two for 25/each)
|
|
296
|
-
const allAscendedSets = [
|
|
297
|
-
items.RefinedEnvoyHelmet, items.RefinedEnvoyPauldrons, items.RefinedEnvoyBreastplate,
|
|
298
|
-
items.RefinedEnvoyGauntlets, items.RefinedEnvoyTassets, items.RefinedEnvoyGreaves,
|
|
299
|
-
|
|
300
|
-
items.RefinedEnvoyMask, items.RefinedEnvoyShoulderpads, items.RefinedEnvoyJerkin,
|
|
301
|
-
items.RefinedEnvoyVambraces, items.RefinedEnvoyLeggings, items.RefinedEnvoyBoots,
|
|
302
|
-
|
|
303
|
-
items.RefinedEnvoyCowl, items.RefinedEnvoyMantle, items.RefinedEnvoyVestments,
|
|
304
|
-
items.RefinedEnvoyGloves, items.RefinedEnvoyPants, items.RefinedEnvoyShoes
|
|
305
|
-
]
|
|
306
|
-
expect(countFromList(allAscendedSets), 'allAscendedSets')
|
|
307
|
-
.to.equal(2 * 6 * 25)
|
|
308
|
-
|
|
309
|
-
// Count the full first legendary set (the precursor was from the achievement, so no LI spent)
|
|
310
|
-
// but the ascended -> legendary conversion costs 25
|
|
311
|
-
const oneWeightLegendarySet = [
|
|
312
|
-
items.PerfectedEnvoyHelmet, items.PerfectedEnvoyPauldrons, items.PerfectedEnvoyBreastplate,
|
|
313
|
-
items.PerfectedEnvoyGauntlets, items.PerfectedEnvoyTassets, items.PerfectedEnvoyGreaves
|
|
314
|
-
]
|
|
315
|
-
expect(countFromList(oneWeightLegendarySet), 'oneWeightLegendarySet')
|
|
316
|
-
.to.equal(6 * 25)
|
|
317
|
-
|
|
318
|
-
// Count the full first legendary set (the precursor was from the achievement, so no LI spent)
|
|
319
|
-
// but the ascended -> legendary conversion costs 25 and some extra ascended items that got crafted via 25 LI insignias
|
|
320
|
-
const oneWeightLegendarySetSetPlusExtraAscended = [
|
|
321
|
-
items.PerfectedEnvoyHelmet, items.PerfectedEnvoyPauldrons, items.PerfectedEnvoyBreastplate,
|
|
322
|
-
items.PerfectedEnvoyGauntlets, items.PerfectedEnvoyTassets, items.PerfectedEnvoyGreaves,
|
|
323
|
-
items.RefinedEnvoyHelmet, items.RefinedEnvoyCowl // one of the same weight, one in a different one
|
|
324
|
-
]
|
|
325
|
-
expect(countFromList(oneWeightLegendarySetSetPlusExtraAscended), 'oneWeightLegendarySetSetPlusExtraAscended')
|
|
326
|
-
.to.equal(6 * 25 + 25 + 25)
|
|
327
|
-
|
|
328
|
-
// Count the full first legendary set (the precursor was from the achievement, so no LI spent)
|
|
329
|
-
// but the ascended -> legendary conversion costs 25 and some extra ascended items that got crafted via 25 LI insignias
|
|
330
|
-
// and some extra legendary items that got crafted (25 for the precursor and 25 for the conversion)
|
|
331
|
-
const oneWeightLegendarySetPlusExtraLegendary = [
|
|
332
|
-
items.PerfectedEnvoyHelmet, items.PerfectedEnvoyPauldrons, items.PerfectedEnvoyBreastplate,
|
|
333
|
-
items.PerfectedEnvoyGauntlets, items.PerfectedEnvoyTassets, items.PerfectedEnvoyGreaves,
|
|
334
|
-
items.RefinedEnvoyHelmet, items.RefinedEnvoyCowl, // one of the same weight, one in a different one
|
|
335
|
-
items.PerfectedEnvoyHelmet, items.PerfectedEnvoyCowl // one of the same weight, one in a different one
|
|
336
|
-
]
|
|
337
|
-
expect(countFromList(oneWeightLegendarySetPlusExtraLegendary), 'oneWeightLegendarySetPlusExtraLegendary').to.equal(
|
|
338
|
-
6 * 25 + // First set, where the precursor was free
|
|
339
|
-
25 + 25 + // Extra refined items, 25 each
|
|
340
|
-
50 + 50 // Extra perfected items, 50 each
|
|
341
|
-
)
|
|
342
|
-
|
|
343
|
-
// Count the full first legendary set (one of the precursor sets was from the achievement, so no LI spent)
|
|
344
|
-
// but the ascended -> legendary conversion costs 25 and the second set costs 25 extra for the precursor
|
|
345
|
-
const allLegendarySets = [
|
|
346
|
-
items.PerfectedEnvoyHelmet, items.PerfectedEnvoyPauldrons, items.PerfectedEnvoyBreastplate,
|
|
347
|
-
items.PerfectedEnvoyGauntlets, items.PerfectedEnvoyTassets, items.PerfectedEnvoyGreaves,
|
|
348
|
-
|
|
349
|
-
items.PerfectedEnvoyMask, items.PerfectedEnvoyShoulderpads, items.PerfectedEnvoyJerkin,
|
|
350
|
-
items.PerfectedEnvoyVambraces, items.PerfectedEnvoyLeggings, items.PerfectedEnvoyBoots,
|
|
351
|
-
|
|
352
|
-
items.PerfectedEnvoyCowl, items.PerfectedEnvoyMantle, items.PerfectedEnvoyVestments,
|
|
353
|
-
items.PerfectedEnvoyGloves, items.PerfectedEnvoyPants, items.PerfectedEnvoyShoes,
|
|
354
|
-
|
|
355
|
-
items.RefinedEnvoyHelmet, items.RefinedEnvoyCowl, // extra refined items
|
|
356
|
-
items.PerfectedEnvoyHelmet, items.PerfectedEnvoyCowl // extra perfected items
|
|
357
|
-
]
|
|
358
|
-
expect(countFromList(allLegendarySets), 'allLegendarySets').to.equal(
|
|
359
|
-
6 * 25 + // First set, where the precursor was free
|
|
360
|
-
2 * 6 * (25 + 25) + // Second and third set, where the precursor was 25 LI
|
|
361
|
-
25 + 25 + // Extra refined items, 25 each
|
|
362
|
-
50 + 50 // Extra perfected items, 50 each
|
|
363
|
-
)
|
|
364
|
-
})
|
|
365
|
-
|
|
366
|
-
it('can calculate white mantle portal device count', () => {
|
|
367
|
-
expect(itemsStatistics(generateAccount([
|
|
368
|
-
{id: 78978, count: 1},
|
|
369
|
-
{id: 30687, count: 1},
|
|
370
|
-
{id: 71383, count: 1},
|
|
371
|
-
{id: 78978, count: 1},
|
|
372
|
-
{id: 78978, count: 1}
|
|
373
|
-
])).whiteMantlePortalDevices).to.equal(3)
|
|
374
|
-
})
|
|
375
|
-
|
|
376
|
-
it('can calculate chak egg sack count', () => {
|
|
377
|
-
expect(itemsStatistics(generateAccount([
|
|
378
|
-
{id: 72021, count: 1},
|
|
379
|
-
{id: 30687, count: 1},
|
|
380
|
-
{id: 71383, count: 1},
|
|
381
|
-
{id: 72021, count: 1},
|
|
382
|
-
{id: 72021, count: 1}
|
|
383
|
-
])).chakEggSacks).to.equal(3)
|
|
384
|
-
})
|
|
385
|
-
|
|
386
|
-
it('can calculate preserved queen bee count', () => {
|
|
387
|
-
expect(itemsStatistics(generateAccount([
|
|
388
|
-
{id: 68440, count: 1},
|
|
389
|
-
{id: 30687, count: 1},
|
|
390
|
-
{id: 71383, count: 1},
|
|
391
|
-
{id: 68440, count: 1},
|
|
392
|
-
{id: 68440, count: 1}
|
|
393
|
-
])).preservedQueenBees).to.equal(3)
|
|
394
|
-
})
|
|
395
|
-
|
|
396
|
-
it('can calculate ghostly infusion count', () => {
|
|
397
|
-
expect(itemsStatistics(generateAccount([
|
|
398
|
-
{id: 77303, count: 1},
|
|
399
|
-
{id: 30687, count: 1},
|
|
400
|
-
{id: 71383, count: 1},
|
|
401
|
-
{id: 77316, count: 1},
|
|
402
|
-
{id: 77394, count: 1}
|
|
403
|
-
])).ghostlyInfusions).to.equal(3)
|
|
404
|
-
})
|
|
405
|
-
|
|
406
|
-
it('can calculate bauble infusion count', () => {
|
|
407
|
-
expect(itemsStatistics(generateAccount([
|
|
408
|
-
{id: 78079, count: 1},
|
|
409
|
-
{id: 30687, count: 1},
|
|
410
|
-
{id: 71383, count: 1},
|
|
411
|
-
{id: 78028, count: 1},
|
|
412
|
-
{id: 78097, count: 1}
|
|
413
|
-
])).baubleInfusions).to.equal(3)
|
|
414
|
-
})
|
|
415
|
-
|
|
416
|
-
it('can calculate luminescent refractor count', () => {
|
|
417
|
-
expect(itemsStatistics(generateAccount([
|
|
418
|
-
{id: 67375, count: 1},
|
|
419
|
-
{id: 30687, count: 1},
|
|
420
|
-
{id: 71383, count: 1},
|
|
421
|
-
{id: 67370, count: 1},
|
|
422
|
-
{id: 67372, count: 1}
|
|
423
|
-
])).luminescentRefractors).to.equal(3)
|
|
424
|
-
})
|
|
425
|
-
|
|
426
|
-
it('can calculate broken spoon count', () => {
|
|
427
|
-
expect(itemsStatistics(generateAccount([
|
|
428
|
-
{id: 74996, count: 1},
|
|
429
|
-
{id: 30687, count: 1},
|
|
430
|
-
{id: 71383, count: 1},
|
|
431
|
-
{id: 74996, count: 1},
|
|
432
|
-
{id: 74996, count: 1}
|
|
433
|
-
])).brokenSpoons).to.equal(3)
|
|
434
|
-
})
|
|
435
|
-
|
|
436
|
-
it('can calculate black lion claim ticket count', () => {
|
|
437
|
-
expect(itemsStatistics(generateAccount([
|
|
438
|
-
{id: 43992, count: 1},
|
|
439
|
-
{id: 30687, count: 1},
|
|
440
|
-
{id: 71383, count: 1},
|
|
441
|
-
{id: 43998, count: 3},
|
|
442
|
-
{id: 43998, count: 1}
|
|
443
|
-
])).blackLionClaimTickets).to.equal(1.4)
|
|
444
|
-
|
|
445
|
-
expect(itemsStatistics(generateAccount([
|
|
446
|
-
{id: 43992, count: 3},
|
|
447
|
-
{id: 30687, count: 1},
|
|
448
|
-
{id: 43998, count: 164}
|
|
449
|
-
])).blackLionClaimTickets).to.equal(19.4)
|
|
450
|
-
})
|
|
451
|
-
|
|
452
|
-
it('can calculate instrument count', () => {
|
|
453
|
-
expect(itemsStatistics(generateAccount([
|
|
454
|
-
{id: 66323, count: 1},
|
|
455
|
-
{id: 30687, count: 1},
|
|
456
|
-
{id: 71383, count: 1},
|
|
457
|
-
{id: 38129, count: 1}, // This is a container and does not count
|
|
458
|
-
{id: 43526, count: 1}
|
|
459
|
-
])).instruments).to.equal(2)
|
|
460
|
-
})
|
|
461
|
-
|
|
462
|
-
it('can calculate music box count', () => {
|
|
463
|
-
expect(itemsStatistics(generateAccount([
|
|
464
|
-
{id: 66323, count: 1},
|
|
465
|
-
{id: 30687, count: 1},
|
|
466
|
-
{id: 82432, count: 1},
|
|
467
|
-
{id: 38129, count: 1},
|
|
468
|
-
{id: 83826, count: 1}
|
|
469
|
-
])).musicBoxes).to.equal(2)
|
|
470
|
-
})
|
|
471
|
-
|
|
472
|
-
it('can calculate permanent tool count', () => {
|
|
473
|
-
expect(itemsStatistics(generateAccount([
|
|
474
|
-
{id: 78806, count: 1},
|
|
475
|
-
{id: 30687, count: 1},
|
|
476
|
-
{id: 71383, count: 1},
|
|
477
|
-
{id: 38129, count: 1},
|
|
478
|
-
{id: 47897, count: 1}
|
|
479
|
-
])).permanentTools).to.equal(2)
|
|
480
|
-
})
|
|
481
|
-
|
|
482
|
-
it('can calculate chak egg count', () => {
|
|
483
|
-
expect(itemsStatistics(generateAccount([
|
|
484
|
-
{id: 72205, count: 1},
|
|
485
|
-
{id: 30687, count: 1},
|
|
486
|
-
{id: 71383, count: 1},
|
|
487
|
-
{id: 72205, count: 1},
|
|
488
|
-
{id: 72205, count: 1}
|
|
489
|
-
])).chakEggs).to.equal(3)
|
|
490
|
-
})
|
|
491
|
-
|
|
492
|
-
it('can calculate reclaimed metal plate count', () => {
|
|
493
|
-
expect(itemsStatistics(generateAccount([
|
|
494
|
-
{id: 74356, count: 1},
|
|
495
|
-
{id: 30687, count: 1},
|
|
496
|
-
{id: 71383, count: 1},
|
|
497
|
-
{id: 74356, count: 1},
|
|
498
|
-
{id: 74356, count: 1}
|
|
499
|
-
])).reclaimedMetalPlates).to.equal(3)
|
|
500
|
-
})
|
|
501
|
-
|
|
502
|
-
it('can calculate fossilized insects count', () => {
|
|
503
|
-
expect(itemsStatistics(generateAccount([
|
|
504
|
-
{id: 66655, count: 1},
|
|
505
|
-
{id: 30687, count: 1},
|
|
506
|
-
{id: 71383, count: 1},
|
|
507
|
-
{id: 66646, count: 1},
|
|
508
|
-
{id: 66642, count: 1}
|
|
509
|
-
])).fossilizedInsects).to.equal(3)
|
|
510
|
-
})
|
|
511
|
-
|
|
512
|
-
it('can calculate champion bag count', () => {
|
|
513
|
-
expect(itemsStatistics(generateAccount([
|
|
514
|
-
{id: 44216, count: 1},
|
|
515
|
-
{id: 30687, count: 1},
|
|
516
|
-
{id: 71383, count: 1},
|
|
517
|
-
{id: 44226, count: 1},
|
|
518
|
-
{id: 44199, count: 250}
|
|
519
|
-
])).championBags).to.equal(252)
|
|
520
|
-
})
|
|
521
|
-
|
|
522
|
-
it('can calculate triple trouble chest count', () => {
|
|
523
|
-
expect(itemsStatistics(generateAccount([
|
|
524
|
-
{id: 49664, count: 1},
|
|
525
|
-
{id: 30687, count: 1},
|
|
526
|
-
{id: 71383, count: 1},
|
|
527
|
-
{id: 49664, count: 1},
|
|
528
|
-
{id: 49664, count: 250}
|
|
529
|
-
])).tripleTroubleChests).to.equal(252)
|
|
530
|
-
})
|
|
531
|
-
|
|
532
|
-
it('can calculate tequatl chest count', () => {
|
|
533
|
-
expect(itemsStatistics(generateAccount([
|
|
534
|
-
{id: 47836, count: 1},
|
|
535
|
-
{id: 30687, count: 1},
|
|
536
|
-
{id: 71383, count: 1},
|
|
537
|
-
{id: 47836, count: 1},
|
|
538
|
-
{id: 47836, count: 250}
|
|
539
|
-
])).tequatlChests).to.equal(252)
|
|
540
|
-
})
|
|
541
|
-
|
|
542
|
-
it('can calculate unique tonic count', () => {
|
|
543
|
-
expect(itemsStatistics(generateAccount([
|
|
544
|
-
{id: 68046, count: 3},
|
|
545
|
-
{id: 2, count: 1},
|
|
546
|
-
{id: 66768, count: 1},
|
|
547
|
-
{id: 66926, count: 1},
|
|
548
|
-
{id: 5, count: 250},
|
|
549
|
-
{id: 68046, count: 100}
|
|
550
|
-
])).uniqueTonics).to.equal(2)
|
|
551
|
-
})
|
|
552
|
-
|
|
553
|
-
it('can calculate blood ruby count', () => {
|
|
554
|
-
expect(itemsStatistics(generateAccount([
|
|
555
|
-
{id: 79280, count: 1},
|
|
556
|
-
{id: 30687, count: 1},
|
|
557
|
-
{id: 71383, count: 1},
|
|
558
|
-
{id: 79280, count: 1},
|
|
559
|
-
{id: 79280, count: 250}
|
|
560
|
-
])).bloodRubies).to.equal(252)
|
|
561
|
-
})
|
|
562
|
-
|
|
563
|
-
it('can calculate petrified wood count', () => {
|
|
564
|
-
expect(itemsStatistics(generateAccount([
|
|
565
|
-
{id: 79469, count: 1},
|
|
566
|
-
{id: 30687, count: 1},
|
|
567
|
-
{id: 71383, count: 1},
|
|
568
|
-
{id: 79469, count: 1},
|
|
569
|
-
{id: 79469, count: 250}
|
|
570
|
-
])).petrifiedWood).to.equal(252)
|
|
571
|
-
})
|
|
572
|
-
|
|
573
|
-
it('can calculate tomes of knowledge count', () => {
|
|
574
|
-
expect(itemsStatistics(generateAccount([
|
|
575
|
-
{id: 43741, count: 1},
|
|
576
|
-
{id: 30687, count: 1},
|
|
577
|
-
{id: 71383, count: 1},
|
|
578
|
-
{id: 43741, count: 1},
|
|
579
|
-
{id: 43766, count: 250}
|
|
580
|
-
])).tomesOfKnowledge).to.equal(252)
|
|
581
|
-
})
|
|
582
|
-
|
|
583
|
-
it('can calculate permanent contract count', () => {
|
|
584
|
-
expect(itemsStatistics(generateAccount([
|
|
585
|
-
{id: 35985, count: 1},
|
|
586
|
-
{id: 30687, count: 1},
|
|
587
|
-
{id: 71383, count: 1},
|
|
588
|
-
{id: 35984, count: 1},
|
|
589
|
-
{id: 49501, count: 1}
|
|
590
|
-
])).permanentContracts).to.equal(3)
|
|
591
|
-
})
|
|
592
|
-
|
|
593
|
-
it('can calculate fresh winterberry count', () => {
|
|
594
|
-
expect(itemsStatistics(generateAccount([
|
|
595
|
-
{id: 79899, count: 2},
|
|
596
|
-
{id: 30687, count: 1},
|
|
597
|
-
{id: 79899, count: 1},
|
|
598
|
-
{id: 79899, count: 1},
|
|
599
|
-
{id: 49501, count: 1}
|
|
600
|
-
])).freshWinterberries).to.equal(4)
|
|
601
|
-
})
|
|
602
|
-
|
|
603
|
-
it('can calculate winter\' heart infusion count', () => {
|
|
604
|
-
expect(itemsStatistics(generateAccount([
|
|
605
|
-
{id: 79899, count: 2},
|
|
606
|
-
{id: 79994, count: 1},
|
|
607
|
-
{id: 79959, count: 1},
|
|
608
|
-
{id: 79899, count: 1},
|
|
609
|
-
{id: 49501, count: 1}
|
|
610
|
-
])).wintersHeartInfusions).to.equal(2)
|
|
611
|
-
})
|
|
612
|
-
|
|
613
|
-
it('can calculate kodas warmth enrichment count', () => {
|
|
614
|
-
expect(itemsStatistics(generateAccount([
|
|
615
|
-
{id: 79899, count: 2},
|
|
616
|
-
{id: 30687, count: 1},
|
|
617
|
-
{id: 79926, count: 1},
|
|
618
|
-
{id: 79899, count: 1},
|
|
619
|
-
{id: 49501, count: 1}
|
|
620
|
-
])).kodasWarmthEnrichment).to.equal(1)
|
|
621
|
-
})
|
|
622
|
-
|
|
623
|
-
it('can calculate phospholuminescent infusions count', () => {
|
|
624
|
-
expect(itemsStatistics(generateAccount([
|
|
625
|
-
{id: 79899, count: 2},
|
|
626
|
-
{id: 30687, count: 1},
|
|
627
|
-
{id: 79653, count: 1},
|
|
628
|
-
{id: 79899, count: 1},
|
|
629
|
-
{id: 49501, count: 1}
|
|
630
|
-
])).phospholuminescentInfusions).to.equal(1)
|
|
631
|
-
})
|
|
632
|
-
|
|
633
|
-
it('can calculate liquid aurillium count', () => {
|
|
634
|
-
expect(itemsStatistics(generateAccount([
|
|
635
|
-
{id: 76063, count: 2},
|
|
636
|
-
{id: 81715, count: 1},
|
|
637
|
-
{id: 79653, count: 1},
|
|
638
|
-
{id: 79899, count: 1},
|
|
639
|
-
{id: 49501, count: 1}
|
|
640
|
-
])).liquidAurillium).to.equal(3)
|
|
641
|
-
})
|
|
642
|
-
|
|
643
|
-
it('can calculate celestial infusion count', () => {
|
|
644
|
-
expect(itemsStatistics(generateAccount([
|
|
645
|
-
{id: 81811, count: 2},
|
|
646
|
-
{id: 81927, count: 1},
|
|
647
|
-
{id: 79653, count: 1},
|
|
648
|
-
{id: 79899, count: 1},
|
|
649
|
-
{id: 49501, count: 1}
|
|
650
|
-
])).celestialInfusion).to.equal(3)
|
|
651
|
-
})
|
|
652
|
-
|
|
653
|
-
it('can calculate gemstore toys count', () => {
|
|
654
|
-
expect(itemsStatistics(generateAccount([
|
|
655
|
-
{id: 79899, count: 2},
|
|
656
|
-
{id: 30687, count: 1},
|
|
657
|
-
{id: 49939, count: 1},
|
|
658
|
-
{id: 79899, count: 1},
|
|
659
|
-
{id: 49501, count: 1}
|
|
660
|
-
])).gemstoreToys).to.equal(1)
|
|
661
|
-
})
|
|
662
|
-
|
|
663
|
-
it('can calculate black lion miniature claim tickets count', () => {
|
|
664
|
-
expect(itemsStatistics(generateAccount([
|
|
665
|
-
{id: 78474, count: 2},
|
|
666
|
-
{id: 30687, count: 1},
|
|
667
|
-
{id: 78474, count: 1},
|
|
668
|
-
{id: 79899, count: 1},
|
|
669
|
-
{id: 49501, count: 1}
|
|
670
|
-
])).blackLionMiniatureClaimTickets).to.equal(3)
|
|
671
|
-
})
|
|
672
|
-
|
|
673
|
-
it('can calculate jade shards count', () => {
|
|
674
|
-
expect(itemsStatistics(generateAccount([
|
|
675
|
-
{id: 80332, count: 2},
|
|
676
|
-
{id: 78474, count: 2},
|
|
677
|
-
{id: 78474, count: 1},
|
|
678
|
-
{id: 80332, count: 1},
|
|
679
|
-
{id: 49501, count: 1}
|
|
680
|
-
])).jadeShards).to.equal(3)
|
|
681
|
-
})
|
|
682
|
-
|
|
683
|
-
it('can calculate gifts of exploration count', () => {
|
|
684
|
-
expect(itemsStatistics(generateAccount([
|
|
685
|
-
{id: 19677, count: 2},
|
|
686
|
-
{id: 78474, count: 2},
|
|
687
|
-
{id: 78474, count: 1},
|
|
688
|
-
{id: 19677, count: 1},
|
|
689
|
-
{id: 49501, count: 1}
|
|
690
|
-
])).giftsOfExploration).to.equal(3)
|
|
691
|
-
})
|
|
692
|
-
|
|
693
|
-
it('can calculate gifts of battle count', () => {
|
|
694
|
-
expect(itemsStatistics(generateAccount([
|
|
695
|
-
{id: 19678, count: 2},
|
|
696
|
-
{id: 78474, count: 2},
|
|
697
|
-
{id: 78474, count: 1},
|
|
698
|
-
{id: 19678, count: 1},
|
|
699
|
-
{id: 49501, count: 1}
|
|
700
|
-
])).giftsOfBattle).to.equal(3)
|
|
701
|
-
})
|
|
702
|
-
|
|
703
|
-
it('can calculate dragonite ore count', () => {
|
|
704
|
-
expect(itemsStatistics(generateAccount([
|
|
705
|
-
{id: 78474, count: 1},
|
|
706
|
-
{id: 46733, count: 22},
|
|
707
|
-
{id: 78474, count: 1},
|
|
708
|
-
{id: 19677, count: 1},
|
|
709
|
-
{id: 46732, count: 4}
|
|
710
|
-
])).dragoniteOre).to.equal(422)
|
|
711
|
-
})
|
|
712
|
-
|
|
713
|
-
it('can calculate bloodstone dust count', () => {
|
|
714
|
-
expect(itemsStatistics(generateAccount([
|
|
715
|
-
{id: 78474, count: 1},
|
|
716
|
-
{id: 46731, count: 22},
|
|
717
|
-
{id: 78474, count: 1},
|
|
718
|
-
{id: 19677, count: 1},
|
|
719
|
-
{id: 46730, count: 4}
|
|
720
|
-
])).bloodstoneDust).to.equal(422)
|
|
721
|
-
})
|
|
722
|
-
|
|
723
|
-
it('can calculate empyreal fragments count', () => {
|
|
724
|
-
expect(itemsStatistics(generateAccount([
|
|
725
|
-
{id: 78474, count: 1},
|
|
726
|
-
{id: 46735, count: 22},
|
|
727
|
-
{id: 78474, count: 1},
|
|
728
|
-
{id: 19677, count: 1},
|
|
729
|
-
{id: 46734, count: 4}
|
|
730
|
-
])).empyrealFragments).to.equal(422)
|
|
731
|
-
})
|
|
732
|
-
|
|
733
|
-
it('can calculate crystalline ore count', () => {
|
|
734
|
-
expect(itemsStatistics(generateAccount([
|
|
735
|
-
{id: 78474, count: 1},
|
|
736
|
-
{id: 46682, count: 22},
|
|
737
|
-
{id: 78474, count: 1},
|
|
738
|
-
{id: 19677, count: 1},
|
|
739
|
-
{id: 46683, count: 4}
|
|
740
|
-
])).crystallineOre).to.equal(26)
|
|
741
|
-
})
|
|
742
|
-
|
|
743
|
-
it('can calculate airship oil count', () => {
|
|
744
|
-
expect(itemsStatistics(generateAccount([
|
|
745
|
-
{id: 78474, count: 1},
|
|
746
|
-
{id: 46682, count: 22},
|
|
747
|
-
{id: 78474, count: 1},
|
|
748
|
-
{id: 76933, count: 1},
|
|
749
|
-
{id: 69434, count: 4}
|
|
750
|
-
])).airshipOil).to.equal(5)
|
|
751
|
-
})
|
|
752
|
-
|
|
753
|
-
it('can calculate auric dust count', () => {
|
|
754
|
-
expect(itemsStatistics(generateAccount([
|
|
755
|
-
{id: 78474, count: 1},
|
|
756
|
-
{id: 69432, count: 22},
|
|
757
|
-
{id: 73537, count: 1},
|
|
758
|
-
{id: 76933, count: 1},
|
|
759
|
-
{id: 69434, count: 4}
|
|
760
|
-
])).auricDust).to.equal(53)
|
|
761
|
-
})
|
|
762
|
-
|
|
763
|
-
it('can calculate ley line sparks count', () => {
|
|
764
|
-
expect(itemsStatistics(generateAccount([
|
|
765
|
-
{id: 78474, count: 1},
|
|
766
|
-
{id: 69392, count: 22},
|
|
767
|
-
{id: 76933, count: 1},
|
|
768
|
-
{id: 74042, count: 1},
|
|
769
|
-
{id: 69434, count: 4}
|
|
770
|
-
])).leyLineSparks).to.equal(24)
|
|
771
|
-
})
|
|
772
|
-
|
|
773
|
-
it('can calculate legendary spikes count', () => {
|
|
774
|
-
expect(itemsStatistics(generateAccount([
|
|
775
|
-
{id: 78474, count: 1},
|
|
776
|
-
{id: 81296, count: 22},
|
|
777
|
-
{id: 76933, count: 1},
|
|
778
|
-
{id: 74042, count: 1},
|
|
779
|
-
{id: 69434, count: 4}
|
|
780
|
-
])).legendarySpikes).to.equal(22)
|
|
781
|
-
})
|
|
782
|
-
|
|
783
|
-
it('can calculate fire orchid blossoms count', () => {
|
|
784
|
-
expect(itemsStatistics(generateAccount([
|
|
785
|
-
{id: 78474, count: 1},
|
|
786
|
-
{id: 81296, count: 22},
|
|
787
|
-
{id: 81127, count: 1},
|
|
788
|
-
{id: 74042, count: 1},
|
|
789
|
-
{id: 81127, count: 4}
|
|
790
|
-
])).fireOrchidBlossoms).to.equal(5)
|
|
791
|
-
})
|
|
792
|
-
|
|
793
|
-
it('can calculate orrian peal count', () => {
|
|
794
|
-
expect(itemsStatistics(generateAccount([
|
|
795
|
-
{id: 78474, count: 1},
|
|
796
|
-
{id: 81296, count: 22},
|
|
797
|
-
{id: 81706, count: 1},
|
|
798
|
-
{id: 74042, count: 1},
|
|
799
|
-
{id: 81706, count: 4}
|
|
800
|
-
])).orrianPearls).to.equal(5)
|
|
801
|
-
})
|
|
802
|
-
|
|
803
|
-
it('can calculate luck', () => {
|
|
804
|
-
expect(itemsStatistics(generateAccount([
|
|
805
|
-
{id: 45175, count: 1}, // 10
|
|
806
|
-
{id: 45175, count: 5}, // 50
|
|
807
|
-
{id: 45176, count: 1}, // 50
|
|
808
|
-
{id: 45176, count: 8}, // 400
|
|
809
|
-
{id: 45177, count: 1}, // 100
|
|
810
|
-
{id: 45177, count: 4}, // 400
|
|
811
|
-
{id: 45178, count: 1}, // 200
|
|
812
|
-
{id: 45178, count: 3}, // 600
|
|
813
|
-
{id: 45179, count: 1}, // 500
|
|
814
|
-
{id: 45179, count: 7} // 3500
|
|
815
|
-
]))._luckFromItems).to.equal(5810)
|
|
816
|
-
})
|
|
817
|
-
|
|
818
|
-
it('can calculate kralkatite ore', () => {
|
|
819
|
-
expect(itemsStatistics(generateAccount([
|
|
820
|
-
{id: 45175, count: 1},
|
|
821
|
-
{id: 45175, count: 5},
|
|
822
|
-
{id: 81743, count: 3},
|
|
823
|
-
{id: 45176, count: 8},
|
|
824
|
-
{id: 45177, count: 1},
|
|
825
|
-
{id: 86069, count: 4},
|
|
826
|
-
{id: 81743, count: 9},
|
|
827
|
-
{id: 45178, count: 3},
|
|
828
|
-
{id: 86069, count: 1},
|
|
829
|
-
{id: 45179, count: 7}
|
|
830
|
-
])).kralkatiteOre).to.equal(5)
|
|
831
|
-
})
|
|
832
|
-
|
|
833
|
-
it('can calculate festive confetti infusions', () => {
|
|
834
|
-
expect(itemsStatistics(generateAccount([
|
|
835
|
-
{id: 45175, count: 1},
|
|
836
|
-
{id: 45175, count: 1},
|
|
837
|
-
{id: 84970, count: 1},
|
|
838
|
-
{id: 45176, count: 1},
|
|
839
|
-
{id: 45177, count: 1},
|
|
840
|
-
{id: 84871, count: 1},
|
|
841
|
-
{id: 81743, count: 1},
|
|
842
|
-
{id: 45178, count: 1},
|
|
843
|
-
{id: 84882, count: 1},
|
|
844
|
-
{id: 84882, count: 1}
|
|
845
|
-
])).festiveConfettiInfusions).to.equal(4)
|
|
846
|
-
})
|
|
847
|
-
|
|
848
|
-
it('can calculate potions of pvp reward', () => {
|
|
849
|
-
expect(itemsStatistics(generateAccount([
|
|
850
|
-
{id: 45175, count: 1},
|
|
851
|
-
{id: 45175, count: 1},
|
|
852
|
-
{id: 68110, count: 1},
|
|
853
|
-
{id: 45176, count: 1},
|
|
854
|
-
{id: 45177, count: 1},
|
|
855
|
-
{id: 68110, count: 1},
|
|
856
|
-
{id: 81743, count: 1},
|
|
857
|
-
{id: 45178, count: 1},
|
|
858
|
-
{id: 84882, count: 1},
|
|
859
|
-
{id: 84882, count: 1}
|
|
860
|
-
])).potionOfPvpRewards).to.equal(2)
|
|
861
|
-
})
|
|
862
|
-
|
|
863
|
-
it('can calculate potions of wvw reward', () => {
|
|
864
|
-
expect(itemsStatistics(generateAccount([
|
|
865
|
-
{id: 45175, count: 1},
|
|
866
|
-
{id: 45175, count: 1},
|
|
867
|
-
{id: 68110, count: 1},
|
|
868
|
-
{id: 78600, count: 1},
|
|
869
|
-
{id: 45177, count: 1},
|
|
870
|
-
{id: 68110, count: 1},
|
|
871
|
-
{id: 81743, count: 1},
|
|
872
|
-
{id: 78600, count: 1},
|
|
873
|
-
{id: 84882, count: 1},
|
|
874
|
-
{id: 84882, count: 1}
|
|
875
|
-
])).potionOfWvwRewards).to.equal(2)
|
|
876
|
-
})
|
|
877
|
-
|
|
878
|
-
it('can calculate skirmish chests', () => {
|
|
879
|
-
expect(itemsStatistics(generateAccount([
|
|
880
|
-
{id: 45175, count: 1},
|
|
881
|
-
{id: 84966, count: 1},
|
|
882
|
-
{id: 68110, count: 1},
|
|
883
|
-
{id: 78600, count: 1},
|
|
884
|
-
{id: 45177, count: 1},
|
|
885
|
-
{id: 68110, count: 1},
|
|
886
|
-
{id: 81743, count: 1},
|
|
887
|
-
{id: 81324, count: 1},
|
|
888
|
-
{id: 84882, count: 1},
|
|
889
|
-
{id: 84882, count: 1}
|
|
890
|
-
])).skirmishChests).to.equal(2)
|
|
891
|
-
})
|
|
892
|
-
|
|
893
|
-
it('can calculate unstable fractal essence', () => {
|
|
894
|
-
expect(itemsStatistics(generateAccount([
|
|
895
|
-
{id: 81743, count: 12}, // Unstable Cosmic Essence
|
|
896
|
-
{id: 94036, count: 1}, // Abyssal Fractal Weapon Box
|
|
897
|
-
{id: 94042, count: 1}, // Abyssal Fractal Axe Skin
|
|
898
|
-
{id: 94017, count: 1}, // Abyssal Infusion Chest
|
|
899
|
-
{id: 94024, count: 1}, // Abyssal Infusion
|
|
900
|
-
{id: 81790, count: 1}, // Celestial Infusion Chest
|
|
901
|
-
{id: 82070, count: 1}, // Celestial Infusion (Red)
|
|
902
|
-
{id: 81632, count: 1}, // Endless Chaos Combat Tonic
|
|
903
|
-
{id: 94055, count: 1}, // Endless Inner Demon Combat Tonic
|
|
904
|
-
|
|
905
|
-
{id: 81761, count: 9999999} // Celestial Infusion (Blue) -- (!) Does not count
|
|
906
|
-
]))._unstableFractalEssenceFromItems).to.equal(7410)
|
|
907
|
-
})
|
|
908
|
-
})
|