@dra2020/district-analytics 5.0.3 → 5.1.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/dist/cli.js +26 -28
- package/dist/cli.js.map +1 -1
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -89315,23 +89315,33 @@ const C = __importStar(__webpack_require__(/*! ./config */ "./src/config.ts"));
|
|
|
89315
89315
|
const normalize_1 = __webpack_require__(/*! ./normalize */ "./src/normalize.ts");
|
|
89316
89316
|
function scoreCountySplitting(rawValue, nCounties, nDistricts) {
|
|
89317
89317
|
const _normalizer = new normalize_1.Normalizer(rawValue);
|
|
89318
|
-
const
|
|
89319
|
-
const
|
|
89320
|
-
|
|
89321
|
-
|
|
89318
|
+
const singleBest = C.countySplittingRange()[C.BEG];
|
|
89319
|
+
const singleWorst = C.countySplittingRange()[C.END];
|
|
89320
|
+
// The practical ideal score depends on the # of counties & districts
|
|
89321
|
+
const avgBest = countySplitBest(nCounties, nDistricts);
|
|
89322
|
+
const avgWorst = countySplitWorst(avgBest);
|
|
89323
|
+
_normalizer.clip(avgBest, avgWorst);
|
|
89324
|
+
_normalizer.unitize(avgBest, avgWorst);
|
|
89322
89325
|
_normalizer.invert();
|
|
89323
89326
|
_normalizer.rescale();
|
|
89324
89327
|
return _normalizer.normalizedNum;
|
|
89325
89328
|
}
|
|
89326
89329
|
exports.scoreCountySplitting = scoreCountySplitting;
|
|
89327
|
-
function
|
|
89328
|
-
const
|
|
89329
|
-
const
|
|
89330
|
-
const
|
|
89331
|
-
const threshold = ((nAllowableSplits * worst) + ((nCounties - nAllowableSplits) * 1.0)) / nCounties;
|
|
89330
|
+
function countySplitBest(nCounties, nDistricts) {
|
|
89331
|
+
const practicalBest = C.countySplittingRange()[C.BEG];
|
|
89332
|
+
const nAllowableSplits = Math.min(nDistricts - 1, nCounties);
|
|
89333
|
+
const threshold = ((nAllowableSplits * practicalBest) + ((nCounties - nAllowableSplits) * 1.0)) / nCounties;
|
|
89332
89334
|
return threshold;
|
|
89333
89335
|
}
|
|
89334
|
-
exports.
|
|
89336
|
+
exports.countySplitBest = countySplitBest;
|
|
89337
|
+
function countySplitWorst(avgBest) {
|
|
89338
|
+
const singleBest = C.countySplittingRange()[C.BEG];
|
|
89339
|
+
const singleWorst = C.countySplittingRange()[C.END];
|
|
89340
|
+
// The practical ideal score depends on the # of counties & districts
|
|
89341
|
+
const avgWorst = avgBest * (singleWorst / singleBest);
|
|
89342
|
+
return avgWorst;
|
|
89343
|
+
}
|
|
89344
|
+
exports.countySplitWorst = countySplitWorst;
|
|
89335
89345
|
function scoreDistrictSplitting(rawValue) {
|
|
89336
89346
|
const _normalizer = new normalize_1.Normalizer(rawValue);
|
|
89337
89347
|
const best = C.districtSplittingRange()[C.BEG];
|
|
@@ -89793,7 +89803,7 @@ exports.scorePolsbyPopper = scorePolsbyPopper;
|
|
|
89793
89803
|
/*! exports provided: partisan, minority, traditionalPrinciples, default */
|
|
89794
89804
|
/***/ (function(module) {
|
|
89795
89805
|
|
|
89796
|
-
module.exports = JSON.parse("{\"partisan\":{\"bias\":{\"range\":[0,0.2],\"weight\":[50,80]},\"impact\":{\"weight\":[50,0],\"threshold\":4},\"competitiveness\":{\"overall\":{\"range\":[0,0.67],\"weight\":100},\"marginal\":{\"range\":[0,0.85],\"weight\":0},\"range\":[0.45,0.55],\"distribution\":[0.25,0.75],\"weight\":[0,20]},\"bonus\":2,\"weight\":[100,80]},\"minority\":{\"range\":[0.37,0.5],\"distribution\":[0.25,0.75],\"shift\":0.15,\"bonus\":20},\"traditionalPrinciples\":{\"compactness\":{\"reock\":{\"range\":[0.25,0.5],\"weight\":50},\"polsby\":{\"range\":[0.1,0.5],\"weight\":50},\"weight\":[0,50]},\"splitting\":{\"county\":{\"range\":[1,1.
|
|
89806
|
+
module.exports = JSON.parse("{\"partisan\":{\"bias\":{\"range\":[0,0.2],\"weight\":[50,80]},\"impact\":{\"weight\":[50,0],\"threshold\":4},\"competitiveness\":{\"overall\":{\"range\":[0,0.67],\"weight\":100},\"marginal\":{\"range\":[0,0.85],\"weight\":0},\"range\":[0.45,0.55],\"distribution\":[0.25,0.75],\"weight\":[0,20]},\"bonus\":2,\"weight\":[100,80]},\"minority\":{\"range\":[0.37,0.5],\"distribution\":[0.25,0.75],\"shift\":0.15,\"bonus\":20},\"traditionalPrinciples\":{\"compactness\":{\"reock\":{\"range\":[0.25,0.5],\"weight\":50},\"polsby\":{\"range\":[0.1,0.5],\"weight\":50},\"weight\":[0,50]},\"splitting\":{\"county\":{\"range\":[1.26,1.68],\"weight\":50},\"district\":{\"range\":[1.26,1.68],\"weight\":50},\"weight\":[0,50]},\"popdev\":{\"range\":[[0.0075,0.002],[0.1,-1]],\"weight\":[0,0]},\"weight\":[0,20]}}");
|
|
89797
89807
|
|
|
89798
89808
|
/***/ }),
|
|
89799
89809
|
|
|
@@ -89948,11 +89958,6 @@ function countySplittingRange(overridesJSON) {
|
|
|
89948
89958
|
return range;
|
|
89949
89959
|
}
|
|
89950
89960
|
exports.countySplittingRange = countySplittingRange;
|
|
89951
|
-
function allowableSplitsMultiplier(overridesJSON) {
|
|
89952
|
-
const m = config_json_1.default.traditionalPrinciples.splitting.county.allowableSplitsMultiplier;
|
|
89953
|
-
return m;
|
|
89954
|
-
}
|
|
89955
|
-
exports.allowableSplitsMultiplier = allowableSplitsMultiplier;
|
|
89956
89961
|
function districtSplittingWeight(overridesJSON) {
|
|
89957
89962
|
const dsW = config_json_1.default.traditionalPrinciples.splitting.district.weight;
|
|
89958
89963
|
return dsW;
|
|
@@ -90165,12 +90170,10 @@ function evalMinorityOpportunity(p, bLog = false) {
|
|
|
90165
90170
|
averageDVf: averageDVf,
|
|
90166
90171
|
bucketsByDemographic: bucketsByDemo
|
|
90167
90172
|
},
|
|
90168
|
-
// nOpportunity1: l1,
|
|
90169
|
-
// nOpportunity2: l2,
|
|
90170
90173
|
nProportional: pD,
|
|
90171
90174
|
opportunityDistricts: oD,
|
|
90172
90175
|
score: score,
|
|
90173
|
-
details: {}
|
|
90176
|
+
details: {}
|
|
90174
90177
|
};
|
|
90175
90178
|
return mS;
|
|
90176
90179
|
}
|
|
@@ -90500,7 +90503,7 @@ function scorePartisan(Vf, VfArray, options) {
|
|
|
90500
90503
|
competitiveness: competitiveScoring,
|
|
90501
90504
|
score: acrossStatesPartisanScore,
|
|
90502
90505
|
score2: withinStatesPartisanScore,
|
|
90503
|
-
details: {}
|
|
90506
|
+
details: {}
|
|
90504
90507
|
};
|
|
90505
90508
|
return s;
|
|
90506
90509
|
}
|
|
@@ -91290,7 +91293,7 @@ function scorePlan(p, overridesJSON) {
|
|
|
91290
91293
|
compactness: cS,
|
|
91291
91294
|
splitting: sS,
|
|
91292
91295
|
populationDeviation: pdS,
|
|
91293
|
-
details: {}
|
|
91296
|
+
details: {}
|
|
91294
91297
|
};
|
|
91295
91298
|
// PARTISAN ("fair") subcategories - bias, impact, & competitiveness (plus lots of supporting measures)
|
|
91296
91299
|
const options = {
|
|
@@ -91311,7 +91314,7 @@ function scorePlan(p, overridesJSON) {
|
|
|
91311
91314
|
minority: mS,
|
|
91312
91315
|
traditionalPrinciples: tpS,
|
|
91313
91316
|
score: score,
|
|
91314
|
-
details: {}
|
|
91317
|
+
details: {}
|
|
91315
91318
|
};
|
|
91316
91319
|
return scorecard;
|
|
91317
91320
|
}
|
|
@@ -91366,12 +91369,7 @@ function printScorecardRow(xx, name, N, Vf, s) {
|
|
|
91366
91369
|
s.partisan.bias.score, s.partisan.impact.unearnedS, // 9
|
|
91367
91370
|
s.partisan.impact.score, s.partisan.competitiveness.cSimple, // 11
|
|
91368
91371
|
s.partisan.competitiveness.cD, s.partisan.competitiveness.mD, s.partisan.competitiveness.score, s.partisan.score2, // 15
|
|
91369
|
-
s.traditionalPrinciples.compactness.reock.raw, s.traditionalPrinciples.compactness.reock.normalized, s.traditionalPrinciples.compactness.polsby.raw, s.traditionalPrinciples.compactness.polsby.normalized, s.traditionalPrinciples.compactness.score, s.traditionalPrinciples.splitting.county.raw, s.traditionalPrinciples.splitting.county.normalized, s.traditionalPrinciples.splitting.district.raw, s.traditionalPrinciples.splitting.district.normalized, s.traditionalPrinciples.splitting.score, s.traditionalPrinciples.populationDeviation.raw, s.traditionalPrinciples.populationDeviation.normalized, s.traditionalPrinciples.score,
|
|
91370
|
-
// s.minority.nOpportunity1,
|
|
91371
|
-
// s.minority.nOpportunity2,
|
|
91372
|
-
s.minority.opportunityDistricts,
|
|
91373
|
-
// s.minority.nProportional,
|
|
91374
|
-
s.minority.score, s.score);
|
|
91372
|
+
s.traditionalPrinciples.compactness.reock.raw, s.traditionalPrinciples.compactness.reock.normalized, s.traditionalPrinciples.compactness.polsby.raw, s.traditionalPrinciples.compactness.polsby.normalized, s.traditionalPrinciples.compactness.score, s.traditionalPrinciples.splitting.county.raw, s.traditionalPrinciples.splitting.county.normalized, s.traditionalPrinciples.splitting.district.raw, s.traditionalPrinciples.splitting.district.normalized, s.traditionalPrinciples.splitting.score, s.traditionalPrinciples.populationDeviation.raw, s.traditionalPrinciples.populationDeviation.normalized, s.traditionalPrinciples.score, s.minority.opportunityDistricts, s.minority.score, s.score);
|
|
91375
91373
|
}
|
|
91376
91374
|
exports.printScorecardRow = printScorecardRow;
|
|
91377
91375
|
|