Skip to content

Commit bffd0e7

Browse files
author
Nick Grippin
committed
fixes to cbsa lookup, n52 test passing
1 parent 0693353 commit bffd0e7

File tree

5 files changed

+26
-24
lines changed

5 files changed

+26
-24
lines changed

census/src/main/resources/jul_2015_cbsa.csv

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

census/src/main/scala/hmda/census/model/CbsaLookup.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import com.github.tototoshi.csv.CSVParser.parse
1010
object CbsaLookup extends CbsaResourceUtils {
1111
val values: Seq[Cbsa] = {
1212
val lines = resourceLines("/jul_2015_cbsa.csv", "ISO-8859-1")
13-
lines.map { line =>
13+
lines.drop(3).map { line =>
1414
val values = parse(line, '\\', ',', '"').getOrElse(List())
1515
val cbsaCode = values(0)
1616
val metroDivCode = values(1)

publication/src/main/scala/hmda/publication/reports/aggregate/A52.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ object A52 {
5656
year <- yearF
5757
total <- totalF
5858
} yield {
59-
6059
A52(
6160
year,
6261
msa,

publication/src/main/scala/hmda/publication/reports/national/N52.scala

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,32 +21,35 @@ case class N52(
2121
description: String = N52.metaData.description
2222
) extends NationalAggregateReport {
2323
def +(a52: A52): N52 = {
24+
if (applicantIncomes.isEmpty) {
25+
N52(a52.year, a52.reportDate, a52.applicantIncomes, a52.total)
26+
} else {
27+
val combinedIncomes = a52.applicantIncomes.map(income => {
28+
val newC = applicantIncomes.find(i => i.applicantIncome == income.applicantIncome).get.borrowerCharacteristics
29+
val originalC = income.borrowerCharacteristics
2430

25-
val combinedIncomes = a52.applicantIncomes.map(income => {
26-
val newC = applicantIncomes.find(i => i.applicantIncome == income.applicantIncome).get.borrowerCharacteristics
27-
val originalC = income.borrowerCharacteristics
31+
val nR = newC.find(_.isInstanceOf[RaceBorrowerCharacteristic]).get.asInstanceOf[RaceBorrowerCharacteristic]
32+
val oR = originalC.find(_.isInstanceOf[RaceBorrowerCharacteristic]).get.asInstanceOf[RaceBorrowerCharacteristic]
33+
val cR = oR + nR
2834

29-
val nR = newC.find(_.isInstanceOf[RaceBorrowerCharacteristic]).get.asInstanceOf[RaceBorrowerCharacteristic]
30-
val oR = originalC.find(_.isInstanceOf[RaceBorrowerCharacteristic]).get.asInstanceOf[RaceBorrowerCharacteristic]
31-
val cR = oR + nR
35+
val nE = newC.find(_.isInstanceOf[EthnicityBorrowerCharacteristic]).get.asInstanceOf[EthnicityBorrowerCharacteristic]
36+
val oE = originalC.find(_.isInstanceOf[EthnicityBorrowerCharacteristic]).get.asInstanceOf[EthnicityBorrowerCharacteristic]
37+
val cE = oE + nE
3238

33-
val nE = newC.find(_.isInstanceOf[EthnicityBorrowerCharacteristic]).get.asInstanceOf[EthnicityBorrowerCharacteristic]
34-
val oE = originalC.find(_.isInstanceOf[EthnicityBorrowerCharacteristic]).get.asInstanceOf[EthnicityBorrowerCharacteristic]
35-
val cE = oE + nE
39+
val nM = newC.find(_.isInstanceOf[MinorityStatusBorrowerCharacteristic]).get.asInstanceOf[MinorityStatusBorrowerCharacteristic]
40+
val oM = originalC.find(_.isInstanceOf[MinorityStatusBorrowerCharacteristic]).get.asInstanceOf[MinorityStatusBorrowerCharacteristic]
41+
val cM = oM + nM
3642

37-
val nM = newC.find(_.isInstanceOf[MinorityStatusBorrowerCharacteristic]).get.asInstanceOf[MinorityStatusBorrowerCharacteristic]
38-
val oM = originalC.find(_.isInstanceOf[MinorityStatusBorrowerCharacteristic]).get.asInstanceOf[MinorityStatusBorrowerCharacteristic]
39-
val cM = oM + nM
43+
ApplicantIncome(income.applicantIncome, List(cR, cE, cM))
44+
})
4045

41-
ApplicantIncome(income.applicantIncome, List(cR, cE, cM))
42-
})
43-
44-
val combinedDispositions = a52.total.map(disposition => {
45-
val originalDisposition = total.find(d => d.disposition == disposition.disposition).get
46-
disposition + originalDisposition
47-
})
46+
val combinedDispositions = a52.total.map(disposition => {
47+
val originalDisposition = total.find(d => d.disposition == disposition.disposition).get
48+
disposition + originalDisposition
49+
})
4850

49-
N52(year, reportDate, combinedIncomes, combinedDispositions, table, description)
51+
N52(year, reportDate, combinedIncomes, combinedDispositions, table, description)
52+
}
5053
}
5154
}
5255

publication/src/test/scala/hmda/publication/reports/national/N52Spec.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class N52Spec extends AsyncWordSpec with MustMatchers with LarGenerators with Be
2525
system.terminate()
2626
}
2727

28-
val fips = CbsaLookup.values.map(_.cbsa)
28+
val fips = CbsaLookup.values.map(_.cbsa).filterNot(_.isEmpty)
2929
val fipsGen = Gen.oneOf(fips)
3030
def propType = Gen.oneOf(1, 2).sample.get
3131

0 commit comments

Comments
 (0)