From 6da7b050fe7c87089d62631327e0cfc4e65830e6 Mon Sep 17 00:00:00 2001 From: kitsuyui Date: Wed, 5 Aug 2026 06:11:17 +0900 Subject: [PATCH] fix: remove unused rarity helper from published metrics Remove the dead expectedPowersOfTen helper and its dedicated spec so coverage and published artifacts reflect only the runtime-supported rarity paths. --- dist/rarity.d.mts | 3 +-- dist/rarity.d.mts.map | 2 +- dist/rarity.mjs | 2 +- dist/rarity.mjs.map | 2 +- src/rarity.spec.ts | 8 -------- src/rarity.ts | 12 ------------ 6 files changed, 4 insertions(+), 25 deletions(-) diff --git a/dist/rarity.d.mts b/dist/rarity.d.mts index 9dedddc..dd36478 100644 --- a/dist/rarity.d.mts +++ b/dist/rarity.d.mts @@ -3,7 +3,6 @@ interface RarityContext { prNum: number; repositoryCommitCount: number; } -declare function expectedPowersOfTen(prNum: number): number; declare function expectedSingleNonzeroDigitPrNumbers(prNum: number): number; declare function expectedPowersOfTwo(prNum: number): number; declare function expectedAllSevens(prNum: number): number; @@ -14,5 +13,5 @@ declare function expectedCommitHitsSameNumbers(repositoryCommitCount: number): n declare function expectedCommitHitsHexspeak(repositoryCommitCount: number): number; declare function isRareEnough(expectedOccurrences: number, maxExpectedOccurrences?: number): boolean; //#endregion -export { RarityContext, expectedAllSevens, expectedCommitHits123, expectedCommitHits666, expectedCommitHits777, expectedCommitHitsHexspeak, expectedCommitHitsSameNumbers, expectedPowersOfTen, expectedPowersOfTwo, expectedSingleNonzeroDigitPrNumbers, isRareEnough }; +export { RarityContext, expectedAllSevens, expectedCommitHits123, expectedCommitHits666, expectedCommitHits777, expectedCommitHitsHexspeak, expectedCommitHitsSameNumbers, expectedPowersOfTwo, expectedSingleNonzeroDigitPrNumbers, isRareEnough }; //# sourceMappingURL=rarity.d.mts.map \ No newline at end of file diff --git a/dist/rarity.d.mts.map b/dist/rarity.d.mts.map index 70c8fce..4ff390f 100644 --- a/dist/rarity.d.mts.map +++ b/dist/rarity.d.mts.map @@ -1 +1 @@ -{"version":3,"file":"rarity.d.mts","names":[],"sources":["../rarity.ts"],"mappings":";UAEiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAiBc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAYpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAapC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAalB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAItB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAItB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAItB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAWc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"} \ No newline at end of file +{"version":3,"file":"rarity.d.mts","names":[],"sources":["../rarity.ts"],"mappings":";UAEiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAiBc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAapC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAalB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAItB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAItB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAItB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAWc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"} \ No newline at end of file diff --git a/dist/rarity.mjs b/dist/rarity.mjs index 8a823d6..ec7bd83 100644 --- a/dist/rarity.mjs +++ b/dist/rarity.mjs @@ -1,2 +1,2 @@ -function e(e){return Math.max(0,40-e+1)}function t(t,n){return t*(e(n)/16**n)}function n(e){let t=0,n=10;for(;n<=e;)t+=1,n*=10;return t}function r(e){if(e<10)return 0;let t=e.toString().length,n=(t-2)*9,r=10**(t-1),i=Math.floor(e/r);return n+Math.min(i,9)}function i(e){return[512,1024,2048,4096,8192,16384,32768,65536].filter(t=>t<=e).length}function a(e){let t=0;for(let n=3;n<=e.toString().length;n+=1)Number.parseInt(`7`.repeat(n),10)<=e&&(t+=1);return t}function o(e){return t(e,3)}function s(e){return t(e,3)}function c(e){return t(e,3)}function l(t){return t*(e(5)/16**4)}function u(t){return t*[`f00d`,`feed`,`cafe`,`c0ffee`,`deadbeef`].reduce((t,n)=>t+e(n.length)/16**n.length,0)}function d(e,t){return t===void 0?!0:e<=t}export{a as expectedAllSevens,c as expectedCommitHits123,s as expectedCommitHits666,o as expectedCommitHits777,u as expectedCommitHitsHexspeak,l as expectedCommitHitsSameNumbers,n as expectedPowersOfTen,i as expectedPowersOfTwo,r as expectedSingleNonzeroDigitPrNumbers,d as isRareEnough}; +function e(e){return Math.max(0,40-e+1)}function t(t,n){return t*(e(n)/16**n)}function n(e){if(e<10)return 0;let t=e.toString().length,n=(t-2)*9,r=10**(t-1),i=Math.floor(e/r);return n+Math.min(i,9)}function r(e){return[512,1024,2048,4096,8192,16384,32768,65536].filter(t=>t<=e).length}function i(e){let t=0;for(let n=3;n<=e.toString().length;n+=1)Number.parseInt(`7`.repeat(n),10)<=e&&(t+=1);return t}function a(e){return t(e,3)}function o(e){return t(e,3)}function s(e){return t(e,3)}function c(t){return t*(e(5)/16**4)}function l(t){return t*[`f00d`,`feed`,`cafe`,`c0ffee`,`deadbeef`].reduce((t,n)=>t+e(n.length)/16**n.length,0)}function u(e,t){return t===void 0?!0:e<=t}export{i as expectedAllSevens,s as expectedCommitHits123,o as expectedCommitHits666,a as expectedCommitHits777,l as expectedCommitHitsHexspeak,c as expectedCommitHitsSameNumbers,r as expectedPowersOfTwo,n as expectedSingleNonzeroDigitPrNumbers,u as isRareEnough}; //# sourceMappingURL=rarity.mjs.map \ No newline at end of file diff --git a/dist/rarity.mjs.map b/dist/rarity.mjs.map index 27578b7..bc8c1ef 100644 --- a/dist/rarity.mjs.map +++ b/dist/rarity.mjs.map @@ -1 +1 @@ -{"version":3,"file":"rarity.mjs","names":[],"sources":["../src/rarity.ts"],"sourcesContent":["const SHA_LENGTH = 40\n\nexport interface RarityContext {\n prNum: number\n repositoryCommitCount: number\n}\n\nfunction slidingWindows(length: number): number {\n return Math.max(0, SHA_LENGTH - length + 1)\n}\n\nfunction expectedOccurrencesFromSubstringProbability(\n repositoryCommitCount: number,\n substringLength: number\n): number {\n return (\n repositoryCommitCount *\n (slidingWindows(substringLength) / 16 ** substringLength)\n )\n}\n\nexport function expectedPowersOfTen(prNum: number): number {\n let count = 0\n let current = 10\n\n while (current <= prNum) {\n count += 1\n current *= 10\n }\n\n return count\n}\n\nexport function expectedSingleNonzeroDigitPrNumbers(prNum: number): number {\n if (prNum < 10) {\n return 0\n }\n\n const digits = prNum.toString().length\n const shorterDigitMatches = (digits - 2) * 9\n const currentDigitBase = 10 ** (digits - 1)\n const currentLeadingDigit = Math.floor(prNum / currentDigitBase)\n\n return shorterDigitMatches + Math.min(currentLeadingDigit, 9)\n}\n\nexport function expectedPowersOfTwo(prNum: number): number {\n const values = [512, 1024, 2048, 4096, 8192, 16384, 32768, 65536]\n return values.filter((value) => value <= prNum).length\n}\n\nexport function expectedAllSevens(prNum: number): number {\n let count = 0\n\n for (let digits = 3; digits <= prNum.toString().length; digits += 1) {\n const value = Number.parseInt('7'.repeat(digits), 10)\n if (value <= prNum) {\n count += 1\n }\n }\n\n return count\n}\n\nexport function expectedCommitHits777(repositoryCommitCount: number): number {\n return expectedOccurrencesFromSubstringProbability(repositoryCommitCount, 3)\n}\n\nexport function expectedCommitHits666(repositoryCommitCount: number): number {\n return expectedOccurrencesFromSubstringProbability(repositoryCommitCount, 3)\n}\n\nexport function expectedCommitHits123(repositoryCommitCount: number): number {\n return expectedOccurrencesFromSubstringProbability(repositoryCommitCount, 3)\n}\n\nexport function expectedCommitHitsSameNumbers(\n repositoryCommitCount: number\n): number {\n return repositoryCommitCount * (slidingWindows(5) / 16 ** 4)\n}\n\nexport function expectedCommitHitsHexspeak(\n repositoryCommitCount: number\n): number {\n const patterns = ['f00d', 'feed', 'cafe', 'c0ffee', 'deadbeef']\n\n const probability = patterns.reduce((sum, pattern) => {\n return sum + slidingWindows(pattern.length) / 16 ** pattern.length\n }, 0)\n\n return repositoryCommitCount * probability\n}\n\nexport function isRareEnough(\n expectedOccurrences: number,\n maxExpectedOccurrences?: number\n): boolean {\n if (maxExpectedOccurrences === undefined) {\n return true\n }\n\n return expectedOccurrences <= maxExpectedOccurrences\n}\n"],"mappings":"AAOA,SAAS,EAAe,EAAwB,CAC9C,OAAO,KAAK,IAAI,EAAG,GAAa,EAAS,EAAE,CAG7C,SAAS,EACP,EACA,EACQ,CACR,OACE,GACC,EAAe,EAAgB,CAAG,IAAM,GAI7C,SAAgB,EAAoB,EAAuB,CACzD,IAAI,EAAQ,EACR,EAAU,GAEd,KAAO,GAAW,GAChB,GAAS,EACT,GAAW,GAGb,OAAO,EAGT,SAAgB,EAAoC,EAAuB,CACzE,GAAI,EAAQ,GACV,MAAO,GAGT,IAAM,EAAS,EAAM,UAAU,CAAC,OAC1B,GAAuB,EAAS,GAAK,EACrC,EAAmB,KAAO,EAAS,GACnC,EAAsB,KAAK,MAAM,EAAQ,EAAiB,CAEhE,OAAO,EAAsB,KAAK,IAAI,EAAqB,EAAE,CAG/D,SAAgB,EAAoB,EAAuB,CAEzD,MADe,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAM,CACnD,OAAQ,GAAU,GAAS,EAAM,CAAC,OAGlD,SAAgB,EAAkB,EAAuB,CACvD,IAAI,EAAQ,EAEZ,IAAK,IAAI,EAAS,EAAG,GAAU,EAAM,UAAU,CAAC,OAAQ,GAAU,EAClD,OAAO,SAAS,IAAI,OAAO,EAAO,CAAE,GAAG,EACxC,IACX,GAAS,GAIb,OAAO,EAGT,SAAgB,EAAsB,EAAuC,CAC3E,OAAO,EAA4C,EAAuB,EAAE,CAG9E,SAAgB,EAAsB,EAAuC,CAC3E,OAAO,EAA4C,EAAuB,EAAE,CAG9E,SAAgB,EAAsB,EAAuC,CAC3E,OAAO,EAA4C,EAAuB,EAAE,CAG9E,SAAgB,EACd,EACQ,CACR,OAAO,GAAyB,EAAe,EAAE,CAAG,IAAM,GAG5D,SAAgB,EACd,EACQ,CAOR,OAAO,EANU,CAAC,OAAQ,OAAQ,OAAQ,SAAU,WAAW,CAElC,QAAQ,EAAK,IACjC,EAAM,EAAe,EAAQ,OAAO,CAAG,IAAM,EAAQ,OAC3D,EAAE,CAKP,SAAgB,EACd,EACA,EACS,CAKT,OAJI,IAA2B,IAAA,GACtB,GAGF,GAAuB"} \ No newline at end of file +{"version":3,"file":"rarity.mjs","names":[],"sources":["../src/rarity.ts"],"sourcesContent":["const SHA_LENGTH = 40\n\nexport interface RarityContext {\n prNum: number\n repositoryCommitCount: number\n}\n\nfunction slidingWindows(length: number): number {\n return Math.max(0, SHA_LENGTH - length + 1)\n}\n\nfunction expectedOccurrencesFromSubstringProbability(\n repositoryCommitCount: number,\n substringLength: number\n): number {\n return (\n repositoryCommitCount *\n (slidingWindows(substringLength) / 16 ** substringLength)\n )\n}\n\nexport function expectedSingleNonzeroDigitPrNumbers(prNum: number): number {\n if (prNum < 10) {\n return 0\n }\n\n const digits = prNum.toString().length\n const shorterDigitMatches = (digits - 2) * 9\n const currentDigitBase = 10 ** (digits - 1)\n const currentLeadingDigit = Math.floor(prNum / currentDigitBase)\n\n return shorterDigitMatches + Math.min(currentLeadingDigit, 9)\n}\n\nexport function expectedPowersOfTwo(prNum: number): number {\n const values = [512, 1024, 2048, 4096, 8192, 16384, 32768, 65536]\n return values.filter((value) => value <= prNum).length\n}\n\nexport function expectedAllSevens(prNum: number): number {\n let count = 0\n\n for (let digits = 3; digits <= prNum.toString().length; digits += 1) {\n const value = Number.parseInt('7'.repeat(digits), 10)\n if (value <= prNum) {\n count += 1\n }\n }\n\n return count\n}\n\nexport function expectedCommitHits777(repositoryCommitCount: number): number {\n return expectedOccurrencesFromSubstringProbability(repositoryCommitCount, 3)\n}\n\nexport function expectedCommitHits666(repositoryCommitCount: number): number {\n return expectedOccurrencesFromSubstringProbability(repositoryCommitCount, 3)\n}\n\nexport function expectedCommitHits123(repositoryCommitCount: number): number {\n return expectedOccurrencesFromSubstringProbability(repositoryCommitCount, 3)\n}\n\nexport function expectedCommitHitsSameNumbers(\n repositoryCommitCount: number\n): number {\n return repositoryCommitCount * (slidingWindows(5) / 16 ** 4)\n}\n\nexport function expectedCommitHitsHexspeak(\n repositoryCommitCount: number\n): number {\n const patterns = ['f00d', 'feed', 'cafe', 'c0ffee', 'deadbeef']\n\n const probability = patterns.reduce((sum, pattern) => {\n return sum + slidingWindows(pattern.length) / 16 ** pattern.length\n }, 0)\n\n return repositoryCommitCount * probability\n}\n\nexport function isRareEnough(\n expectedOccurrences: number,\n maxExpectedOccurrences?: number\n): boolean {\n if (maxExpectedOccurrences === undefined) {\n return true\n }\n\n return expectedOccurrences <= maxExpectedOccurrences\n}\n"],"mappings":"AAOA,SAAS,EAAe,EAAwB,CAC9C,OAAO,KAAK,IAAI,EAAG,GAAa,EAAS,EAAE,CAG7C,SAAS,EACP,EACA,EACQ,CACR,OACE,GACC,EAAe,EAAgB,CAAG,IAAM,GAI7C,SAAgB,EAAoC,EAAuB,CACzE,GAAI,EAAQ,GACV,MAAO,GAGT,IAAM,EAAS,EAAM,UAAU,CAAC,OAC1B,GAAuB,EAAS,GAAK,EACrC,EAAmB,KAAO,EAAS,GACnC,EAAsB,KAAK,MAAM,EAAQ,EAAiB,CAEhE,OAAO,EAAsB,KAAK,IAAI,EAAqB,EAAE,CAG/D,SAAgB,EAAoB,EAAuB,CAEzD,MADe,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAM,CACnD,OAAQ,GAAU,GAAS,EAAM,CAAC,OAGlD,SAAgB,EAAkB,EAAuB,CACvD,IAAI,EAAQ,EAEZ,IAAK,IAAI,EAAS,EAAG,GAAU,EAAM,UAAU,CAAC,OAAQ,GAAU,EAClD,OAAO,SAAS,IAAI,OAAO,EAAO,CAAE,GAAG,EACxC,IACX,GAAS,GAIb,OAAO,EAGT,SAAgB,EAAsB,EAAuC,CAC3E,OAAO,EAA4C,EAAuB,EAAE,CAG9E,SAAgB,EAAsB,EAAuC,CAC3E,OAAO,EAA4C,EAAuB,EAAE,CAG9E,SAAgB,EAAsB,EAAuC,CAC3E,OAAO,EAA4C,EAAuB,EAAE,CAG9E,SAAgB,EACd,EACQ,CACR,OAAO,GAAyB,EAAe,EAAE,CAAG,IAAM,GAG5D,SAAgB,EACd,EACQ,CAOR,OAAO,EANU,CAAC,OAAQ,OAAQ,OAAQ,SAAU,WAAW,CAElC,QAAQ,EAAK,IACjC,EAAM,EAAe,EAAQ,OAAO,CAAG,IAAM,EAAQ,OAC3D,EAAE,CAKP,SAAgB,EACd,EACA,EACS,CAKT,OAJI,IAA2B,IAAA,GACtB,GAGF,GAAuB"} \ No newline at end of file diff --git a/src/rarity.spec.ts b/src/rarity.spec.ts index 4ba7677..668deee 100644 --- a/src/rarity.spec.ts +++ b/src/rarity.spec.ts @@ -7,20 +7,12 @@ import { expectedCommitHits777, expectedCommitHitsHexspeak, expectedCommitHitsSameNumbers, - expectedPowersOfTen, expectedPowersOfTwo, expectedSingleNonzeroDigitPrNumbers, isRareEnough, } from './rarity' describe('rarity helpers', () => { - it('counts power-of-ten pull request milestones up to the current PR', () => { - expect(expectedPowersOfTen(9)).toBe(0) - expect(expectedPowersOfTen(10)).toBe(1) - expect(expectedPowersOfTen(999)).toBe(2) - expect(expectedPowersOfTen(10000)).toBe(4) - }) - it('counts single nonzero digit pull request milestones', () => { expect(expectedSingleNonzeroDigitPrNumbers(9)).toBe(0) expect(expectedSingleNonzeroDigitPrNumbers(10)).toBe(1) diff --git a/src/rarity.ts b/src/rarity.ts index 4a6901f..693f497 100644 --- a/src/rarity.ts +++ b/src/rarity.ts @@ -19,18 +19,6 @@ function expectedOccurrencesFromSubstringProbability( ) } -export function expectedPowersOfTen(prNum: number): number { - let count = 0 - let current = 10 - - while (current <= prNum) { - count += 1 - current *= 10 - } - - return count -} - export function expectedSingleNonzeroDigitPrNumbers(prNum: number): number { if (prNum < 10) { return 0