Skip to content

Commit

Permalink
Resolved comments
Browse files Browse the repository at this point in the history
  • Loading branch information
theayushyadav11 committed Feb 5, 2025
1 parent b78c11e commit a89ff28
Showing 1 changed file with 63 additions and 65 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,85 +11,92 @@ import org.oppia.android.app.model.Real
@RunWith(JUnit4::class)
class PolynomialSubjectTest {

// Helper function to create a polynomial term
fun createTerm(coefficient: Int, vararg variables: Pair<String, Int>): Polynomial.Term {
return Polynomial.Term.newBuilder()
.setCoefficient(Real.newBuilder().setInteger(coefficient))
.apply {
variables.forEach { (name, power) ->
addVariable(Polynomial.Term.Variable.newBuilder().setName(name).setPower(power))
}
}
.build()
}

// Helper function to create a polynomial from multiple terms
fun createPolynomial(vararg terms: Polynomial.Term): Polynomial {
return Polynomial.newBuilder().apply {
terms.forEach { addTerm(it) }
}.build()
}

@Test
fun testPolynomialSubject_withNullPolynomial_isNotValidPolynomial() {
PolynomialSubject.assertThat(null).isNotValidPolynomial()
}

@Test
fun testPolynomialSubject_withNonNullPolynomial_isNotValidPolynomial_fails() {
val polynomial = Polynomial.newBuilder()
.addTerm(Polynomial.Term.newBuilder().setCoefficient(Real.newBuilder().setInteger(1)))
.build()
val polynomial = createPolynomial(
createTerm(5, "x" to 1)
)
assertThrows(AssertionError::class.java) {
PolynomialSubject.assertThat(polynomial).isNotValidPolynomial()
}
}

@Test
fun testPolynomialSubject_withConstantPolynomial_isConstantThat() {
val constantPolynomial = Polynomial.newBuilder()
.addTerm(Polynomial.Term.newBuilder().setCoefficient(Real.newBuilder().setInteger(5)))
.build()
val constantPolynomial = createPolynomial(
createTerm(5)
)
PolynomialSubject.assertThat(constantPolynomial)
.isConstantThat()
.isIntegerThat()
.isEqualTo(5)
}

@Test
fun testPolynomialSubject_withNonConstantPolynomial_isConstantThat_fails() {
val nonConstantPolynomial = Polynomial.newBuilder()
.addTerm(
Polynomial.Term.newBuilder()
.setCoefficient(Real.newBuilder().setInteger(5))
.addVariable(Polynomial.Term.Variable.newBuilder().setName("x").setPower(1))
)
.build()
fun testPolynomialSubject_testIsConstantThat_withNonConstantPolynomial_fails() {
val nonConstantPolynomial = createPolynomial(
createTerm(5, "x" to 1)
)

assertThrows(AssertionError::class.java) {
PolynomialSubject.assertThat(nonConstantPolynomial).isConstantThat()
}
}

@Test
fun testPolynomialSubject_withZeroTerms_hasTermCountThat() {
fun testPolynomialSubject_withZeroTerms_hasTermCountThatIsEqualToZero() {
val emptyPolynomial = Polynomial.newBuilder().build()
PolynomialSubject.assertThat(emptyPolynomial)
.hasTermCountThat()
.isEqualTo(0)
}

@Test
fun testPolynomialSubject_withMultipleTerms_hasTermCountThat() {
val multiTermPolynomial = Polynomial.newBuilder()
.addTerm(Polynomial.Term.newBuilder().setCoefficient(Real.newBuilder().setInteger(1)))
.addTerm(Polynomial.Term.newBuilder().setCoefficient(Real.newBuilder().setInteger(2)))
.build()
fun testPolynomialSubject_withTwoTerms_hasTermCountThatIsEqualToTwo() {
val multiTermPolynomial = createPolynomial(
createTerm(1),
createTerm(2)
)

PolynomialSubject.assertThat(multiTermPolynomial)
.hasTermCountThat()
.isEqualTo(2)
}

@Test
fun testPolynomialSubject_withValidIndex_termHasCoefficient() {
val polynomial = Polynomial.newBuilder()
.addTerm(
Polynomial.Term.newBuilder()
.setCoefficient(Real.newBuilder().setInteger(5))
.addVariable(Polynomial.Term.Variable.newBuilder().setName("x").setPower(2))
)
.addTerm(
Polynomial.Term.newBuilder()
.setCoefficient(Real.newBuilder().setInteger(3))
.addVariable(Polynomial.Term.Variable.newBuilder().setName("y").setPower(1))
)
.build()
fun testPolynomialSubject_withValidIndex_termHasCoefficientAndvariable() {
val polynomial = createPolynomial(
createTerm(5, "x" to 2),
createTerm(3, "y" to 1)
)

PolynomialSubject.assertThat(polynomial)
.term(0)
.hasCoefficientThat()
.isIntegerThat()
.isEqualTo(5)

PolynomialSubject.assertThat(polynomial)
.term(0)
Expand All @@ -113,56 +120,47 @@ class PolynomialSubjectTest {
}

@Test
fun testPolynomialSubject_withConstantPolynomial_evaluatesToPlainTextThat() {
val constantPolynomial = Polynomial.newBuilder()
.addTerm(Polynomial.Term.newBuilder().setCoefficient(Real.newBuilder().setInteger(5)))
.build()
fun testPolynomialSubject_withConstantPolynomial_evaluatesToPlainText() {
val constantPolynomial = createPolynomial(
createTerm(5)
)
PolynomialSubject.assertThat(constantPolynomial)
.evaluatesToPlainTextThat()
.isEqualTo("5")
}

@Test
fun testPolynomialSubject_withComplexPolynomial_evaluatesToPlainTextThat() {
val polynomial = Polynomial.newBuilder()
.addTerm(
Polynomial.Term.newBuilder()
.setCoefficient(Real.newBuilder().setInteger(2))
.addVariable(Polynomial.Term.Variable.newBuilder().setName("x").setPower(2))
)
.addTerm(
Polynomial.Term.newBuilder()
.setCoefficient(Real.newBuilder().setInteger(3))
.addVariable(Polynomial.Term.Variable.newBuilder().setName("x").setPower(1))
)
.addTerm(Polynomial.Term.newBuilder().setCoefficient(Real.newBuilder().setInteger(1)))
.build()
fun testPolynomialSubject_withComplexPolynomial_evaluatesToPlainText() {
val polynomial = createPolynomial(
createTerm(2, "x" to 2),
createTerm(3, "x" to 1),
createTerm(1)
)

PolynomialSubject.assertThat(polynomial)
.evaluatesToPlainTextThat()
.isEqualTo("2x^2 + 3x + 1")
}

@Test
fun testPolynomialSubject_withTermHasVariableCount_that() {
val term = Polynomial.Term.newBuilder()
.setCoefficient(Real.newBuilder().setInteger(5))
.addVariable(Polynomial.Term.Variable.newBuilder().setName("x").setPower(2))
.addVariable(Polynomial.Term.Variable.newBuilder().setName("y").setPower(1))
.build()
fun testPolynomialSubject_withTwoTerms_hasVariableCountThatIsEqualToTwo() {
val polynomial = createPolynomial(
createTerm(5, "x" to 2, "y" to 1)
)

PolynomialSubject.assertThat(Polynomial.newBuilder().addTerm(term).build())
PolynomialSubject.assertThat(polynomial)
.term(0)
.hasVariableCountThat()
.isEqualTo(2)
}

@Test
fun testPolynomialSubject_withTermVariableHasDetails_that() {
val term = Polynomial.Term.newBuilder()
.addVariable(Polynomial.Term.Variable.newBuilder().setName("x").setPower(3))
.build()
fun testPolynomialSubject_polynomialTermVariable_hasExpectedDetails() {
val polynomial = createPolynomial(
createTerm(1, "x" to 3)
)

PolynomialSubject.assertThat(Polynomial.newBuilder().addTerm(term).build())
PolynomialSubject.assertThat(polynomial)
.term(0)
.variable(0)
.apply {
Expand Down

0 comments on commit a89ff28

Please sign in to comment.