Add finer ranking levels (#2762)
* Add finer ranking levels * Update rank description
This commit is contained in:
1 parent
768721f325
commit
66e5492654
6 files changed
+69
-60
No files matched your search
+39
-25
@@ -2,7 +2,7 @@ import "@testing-library/jest-dom";
|
||||
import { calculateRank } from "../src/calculateRank.js";
|
||||
|
||||
describe("Test calculateRank", () => {
|
||||
it("new user gets B rank", () => {
|
||||
it("new user gets C rank", () => {
|
||||
expect(
|
||||
calculateRank({
|
||||
all_commits: false,
|
||||
@@ -13,10 +13,24 @@ describe("Test calculateRank", () => {
|
||||
stars: 0,
|
||||
followers: 0,
|
||||
}),
|
||||
).toStrictEqual({ level: "B", score: 100 });
|
||||
).toStrictEqual({ level: "C", percentile: 100 });
|
||||
});
|
||||
|
||||
it("average user gets A rank", () => {
|
||||
it("beginner user gets B- rank", () => {
|
||||
expect(
|
||||
calculateRank({
|
||||
all_commits: false,
|
||||
commits: 125,
|
||||
prs: 25,
|
||||
issues: 10,
|
||||
repos: 0,
|
||||
stars: 25,
|
||||
followers: 5,
|
||||
}),
|
||||
).toStrictEqual({ level: "B-", percentile: 69.333868386557 });
|
||||
});
|
||||
|
||||
it("median user gets B+ rank", () => {
|
||||
expect(
|
||||
calculateRank({
|
||||
all_commits: false,
|
||||
@@ -24,13 +38,13 @@ describe("Test calculateRank", () => {
|
||||
prs: 50,
|
||||
issues: 25,
|
||||
repos: 0,
|
||||
stars: 250,
|
||||
followers: 25,
|
||||
stars: 50,
|
||||
followers: 10,
|
||||
}),
|
||||
).toStrictEqual({ level: "A", score: 50 });
|
||||
).toStrictEqual({ level: "B+", percentile: 50 });
|
||||
});
|
||||
|
||||
it("average user gets A rank (include_all_commits)", () => {
|
||||
it("average user gets B+ rank (include_all_commits)", () => {
|
||||
expect(
|
||||
calculateRank({
|
||||
all_commits: true,
|
||||
@@ -38,13 +52,13 @@ describe("Test calculateRank", () => {
|
||||
prs: 50,
|
||||
issues: 25,
|
||||
repos: 0,
|
||||
stars: 250,
|
||||
followers: 25,
|
||||
stars: 50,
|
||||
followers: 10,
|
||||
}),
|
||||
).toStrictEqual({ level: "A", score: 50 });
|
||||
).toStrictEqual({ level: "B+", percentile: 50 });
|
||||
});
|
||||
|
||||
it("more than average user gets A+ rank", () => {
|
||||
it("advanced user gets A rank", () => {
|
||||
expect(
|
||||
calculateRank({
|
||||
all_commits: false,
|
||||
@@ -52,13 +66,13 @@ describe("Test calculateRank", () => {
|
||||
prs: 100,
|
||||
issues: 50,
|
||||
repos: 0,
|
||||
stars: 500,
|
||||
followers: 50,
|
||||
stars: 200,
|
||||
followers: 40,
|
||||
}),
|
||||
).toStrictEqual({ level: "A+", score: 25 });
|
||||
).toStrictEqual({ level: "A", percentile: 22.72727272727273 });
|
||||
});
|
||||
|
||||
it("expert user gets S rank", () => {
|
||||
it("expert user gets A+ rank", () => {
|
||||
expect(
|
||||
calculateRank({
|
||||
all_commits: false,
|
||||
@@ -66,23 +80,23 @@ describe("Test calculateRank", () => {
|
||||
prs: 200,
|
||||
issues: 100,
|
||||
repos: 0,
|
||||
stars: 1000,
|
||||
followers: 100,
|
||||
stars: 800,
|
||||
followers: 160,
|
||||
}),
|
||||
).toStrictEqual({ level: "S", score: 6.25 });
|
||||
).toStrictEqual({ level: "A+", percentile: 6.082887700534744 });
|
||||
});
|
||||
|
||||
it("ezyang gets S+ rank", () => {
|
||||
it("sindresorhus gets S rank", () => {
|
||||
expect(
|
||||
calculateRank({
|
||||
all_commits: false,
|
||||
commits: 1000,
|
||||
prs: 4000,
|
||||
issues: 2000,
|
||||
commits: 1300,
|
||||
prs: 1500,
|
||||
issues: 4500,
|
||||
repos: 0,
|
||||
stars: 5000,
|
||||
followers: 2000,
|
||||
stars: 600000,
|
||||
followers: 50000,
|
||||
}),
|
||||
).toStrictEqual({ level: "S+", score: 1.1363983154296875 });
|
||||
).toStrictEqual({ level: "S", percentile: 0.49947889605312934 });
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user