auu
This commit is contained in:
parent
d995726462
commit
0a343ecbc5
326 changed files with 15584 additions and 0 deletions
22
test/economy-simulation-test.js
Normal file
22
test/economy-simulation-test.js
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
'use strict';
|
||||
const {assert,loadAppLogic}=require('./helpers/app-source');
|
||||
const AppLogic=loadAppLogic(),samples=[],storeCoefficients=[];
|
||||
for(let seed=1;seed<=5000;seed++){
|
||||
const level=1+(seed%10),baseScore=20+level*level*4,meta={id:`B${seed}`,seed,generatorVersion:5},
|
||||
state={paths:[{startGate:0,endGate:1,cells:[[0,0],[0,1],[1,1],[1,2]]}]},
|
||||
reward=AppLogic.deterministicBoardReward(baseScore,{worldSeed:0x51a7f00d,meta,state});
|
||||
assert(reward.coefficient>=.8&&reward.coefficient<=1.2,'Board coefficient escaped its bound');
|
||||
samples.push(reward.award);
|
||||
const prices=[700,1400,1800,2400].map(base=>AppLogic.deterministicStorePrice(base,0x51a7f00d,seed%97,Math.floor(seed/97),1));
|
||||
assert(prices.every(entry=>entry.coefficient===prices[0].coefficient),'Products in one store received different coefficients');
|
||||
storeCoefficients.push(prices[0].coefficient);
|
||||
}
|
||||
const mean=values=>values.reduce((sum,value)=>sum+value,0)/values.length,
|
||||
rewardMean=mean(samples),storeMean=mean(storeCoefficients);
|
||||
assert(storeMean>.99&&storeMean<1.01,'Store coefficient distribution is materially biased');
|
||||
assert(rewardMean>100&&rewardMean<230,'Reward rebalance left the measured progression band');
|
||||
assert(700<1400&&1400<1800&&1800<2400,'Cosmetics/lens/field price ladder is invalid');
|
||||
assert(1400/rewardMean>5&&1400/rewardMean<15,'Score lens is either trivial or effectively mandatory');
|
||||
assert(2400/rewardMean<24,'MAX field is outside a meaningful attainable score-sink range');
|
||||
assert(AppLogic.deterministicBoardReward(100,{meta:{id:'B1',seed:1,generatorVersion:5},state:{paths:[]},scoreLensCount:100}).lensMultiplier===1.5,'Repeated lenses create unbounded score inflation');
|
||||
console.log(`Economy simulation passed: mean reward ${rewardMean.toFixed(2)}, mean coefficient ${storeMean.toFixed(4)}`);
|
||||
Loading…
Add table
Add a link
Reference in a new issue