25 lines
942 B
TypeScript
25 lines
942 B
TypeScript
|
|
import { describe, expect, it } from "vitest";
|
||
|
|
import { harvillePlacementProbabilities } from "../brackt-simulator";
|
||
|
|
|
||
|
|
describe("BracktSimulator", () => {
|
||
|
|
it("returns uniform placement probabilities when all weights are zero", () => {
|
||
|
|
const probabilities = harvillePlacementProbabilities([0, 0, 0, 0, 0, 0]);
|
||
|
|
|
||
|
|
expect(probabilities).toHaveLength(6);
|
||
|
|
for (const row of probabilities) {
|
||
|
|
expect(row).toHaveLength(6);
|
||
|
|
for (const probability of row) {
|
||
|
|
expect(probability).toBeCloseTo(1 / 6, 5);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
it("gives higher first-place probability to higher projected weights", () => {
|
||
|
|
const probabilities = harvillePlacementProbabilities([10, 20, 40]);
|
||
|
|
|
||
|
|
expect(probabilities[2][0]).toBeGreaterThan(probabilities[1][0]);
|
||
|
|
expect(probabilities[1][0]).toBeGreaterThan(probabilities[0][0]);
|
||
|
|
expect(probabilities[0][0] + probabilities[1][0] + probabilities[2][0]).toBeCloseTo(1, 5);
|
||
|
|
});
|
||
|
|
});
|