Skip to content

Commit 742546d

Browse files
committed
Add Arithmetic tests
1 parent 13077e6 commit 742546d

File tree

4 files changed

+576
-6
lines changed

4 files changed

+576
-6
lines changed

firebase-firestore/src/main/java/com/google/firebase/firestore/pipeline/EvaluateResult.kt

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import com.google.firestore.v1.Value
66
import com.google.protobuf.Timestamp
77

88
internal sealed class EvaluateResult(val value: Value?) {
9+
abstract val isError: Boolean
10+
911
companion object {
1012
val TRUE: EvaluateResultValue = EvaluateResultValue(Values.TRUE_VALUE)
1113
val FALSE: EvaluateResultValue = EvaluateResultValue(Values.FALSE_VALUE)
@@ -24,12 +26,16 @@ internal sealed class EvaluateResult(val value: Value?) {
2426
if (seconds !in -62_135_596_800 until 253_402_300_800) EvaluateResultError
2527
else timestamp(Values.timestamp(seconds, nanos))
2628
}
27-
internal inline fun evaluateNonNull(f: (Value) -> EvaluateResult): EvaluateResult =
28-
if (value?.hasNullValue() == true) f(value) else this
2929
}
3030

31-
internal object EvaluateResultError : EvaluateResult(null)
31+
internal object EvaluateResultError : EvaluateResult(null) {
32+
override val isError: Boolean = true
33+
}
3234

33-
internal object EvaluateResultUnset : EvaluateResult(null)
35+
internal object EvaluateResultUnset : EvaluateResult(null) {
36+
override val isError: Boolean = false
37+
}
3438

35-
internal class EvaluateResultValue(value: Value) : EvaluateResult(value)
39+
internal class EvaluateResultValue(value: Value) : EvaluateResult(value) {
40+
override val isError: Boolean = false
41+
}

firebase-firestore/src/main/java/com/google/firebase/firestore/pipeline/evaluation.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ internal val evaluateDivide = arithmeticPrimitive(Long::div, Double::div)
138138

139139
internal val evaluateFloor = arithmeticPrimitive({ it }, Math::floor)
140140

141-
internal val evaluateMod = arithmeticPrimitive(Long::mod, Double::mod)
141+
internal val evaluateMod = arithmeticPrimitive(Long::rem, Double::rem)
142142

143143
internal val evaluateMultiply: EvaluateFunction =
144144
arithmeticPrimitive(Math::multiplyExact, Double::times)

0 commit comments

Comments
 (0)