Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Q651 for 2025 #4892

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,8 @@ private[engine] object LarEngine2025 extends ValidationEngine[LoanApplicationReg
quality2020.Q648,
quality2020.Q649_1,
quality2020.Q649_2,
quality2020.Q651,
quality2025.Q651_1,
quality2025.Q651_2,
quality2020.Q652,
quality2021.Q650_1,
quality2021.Q650_2,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package hmda.validation.rules.lar.quality._2025

import hmda.model.filing.lar.LoanApplicationRegister
import hmda.validation.dsl.PredicateCommon._
import hmda.validation.dsl.PredicateSyntax._
import hmda.validation.dsl.ValidationResult
import hmda.validation.rules.EditCheck

object Q651_1 extends EditCheck[LoanApplicationRegister] {
override def name: String = "Q651-1"

override def parent: String = "Q651"

override def apply(lar: LoanApplicationRegister): ValidationResult ={
when(lar.loan.combinedLoanToValueRatio is numeric) {
lar.loan.combinedLoanToValueRatio.toDouble is greaterThanOrEqual(1.5) or (lar.loan.combinedLoanToValueRatio.toDouble is lessThanOrEqual(0))
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package hmda.validation.rules.lar.quality._2025

import hmda.model.filing.lar.LoanApplicationRegister
import hmda.validation.dsl.PredicateCommon._
import hmda.validation.dsl.PredicateSyntax._
import hmda.validation.dsl.ValidationResult
import hmda.validation.rules.EditCheck

object Q651_2 extends EditCheck[LoanApplicationRegister] {
override def name: String = "Q651-2"

override def parent: String = "Q651"

override def apply(lar: LoanApplicationRegister): ValidationResult ={
when(lar.loan.combinedLoanToValueRatio is numeric) {
lar.loan.combinedLoanToValueRatio.toFloat is lessThan(150)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package hmda.validation.rules.lar.quality._2025

import hmda.model.filing.lar.LarGenerators._
import hmda.model.filing.lar.LoanApplicationRegister
import hmda.validation.rules.EditCheck
import hmda.validation.rules.lar.LarEditCheckSpec

class Q651_1Spec extends LarEditCheckSpec {
override def check: EditCheck[LoanApplicationRegister] = Q651_1

property(
"CLTV should not be between 0 and 1.5") {

forAll(larGen) { lar =>
lar.copy(loan = lar.loan.copy(combinedLoanToValueRatio = "NA")).mustPass
lar.copy(loan = lar.loan.copy(combinedLoanToValueRatio = "0")).mustPass
lar.copy(loan = lar.loan.copy(combinedLoanToValueRatio = "1.5")).mustPass
lar.copy(loan = lar.loan.copy(combinedLoanToValueRatio = "1.49")).mustFail
lar.copy(loan = lar.loan.copy(combinedLoanToValueRatio = ".01")).mustFail

}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package hmda.validation.rules.lar.quality._2025

import hmda.model.filing.lar.LarGenerators._
import hmda.model.filing.lar.LoanApplicationRegister
import hmda.validation.rules.EditCheck
import hmda.validation.rules.lar.LarEditCheckSpec

class Q651_2Spec extends LarEditCheckSpec {
override def check: EditCheck[LoanApplicationRegister] = Q651_2

property(
"CLTV should be under 150") {

forAll(larGen) { lar =>
lar.copy(loan = lar.loan.copy(combinedLoanToValueRatio = "NA")).mustPass
lar.copy(loan = lar.loan.copy(combinedLoanToValueRatio = "149")).mustPass
lar.copy(loan = lar.loan.copy(combinedLoanToValueRatio = "0")).mustPass
lar.copy(loan = lar.loan.copy(combinedLoanToValueRatio = "150")).mustFail
lar.copy(loan = lar.loan.copy(combinedLoanToValueRatio = "151")).mustFail

}
}
}
Loading