### Question:
DeterminismEvaluator { public DeterminismEvaluator(Metadata metadata) { this.metadata = requireNonNull(metadata, "metadata is null"); } DeterminismEvaluator(Metadata metadata); boolean isDeterministic(RowExpression expression);  }### Answer:
@Test public void testDeterminismEvaluator() { Metadata metadata = createTestMetadataManager(); DeterminismEvaluator determinismEvaluator = new DeterminismEvaluator(metadata); CallExpression random = new CallExpression( metadata.resolveFunction(QualifiedName.of("random"), fromTypes(BIGINT)), singletonList(constant(10L, BIGINT))); assertFalse(determinismEvaluator.isDeterministic(random)); InputReferenceExpression col0 = field(0, BIGINT); ResolvedFunction lessThan = metadata.resolveOperator(LESS_THAN, ImmutableList.of(BIGINT, BIGINT)); CallExpression lessThanExpression = new CallExpression(lessThan, ImmutableList.of(col0, constant(10L, BIGINT))); assertTrue(determinismEvaluator.isDeterministic(lessThanExpression)); CallExpression lessThanRandomExpression = new CallExpression(lessThan, ImmutableList.of(col0, random)); assertFalse(determinismEvaluator.isDeterministic(lessThanRandomExpression)); }