### Question:
UConditional extends UExpression implements ConditionalExpressionTree { public static UConditional create( UExpression conditionExpr, UExpression trueExpr, UExpression falseExpr) { return new AutoValue_UConditional(conditionExpr, trueExpr, falseExpr); }  static UConditional create(
      UExpression conditionExpr, UExpression trueExpr, UExpression falseExpr); @Override abstract UExpression getCondition(); @Override abstract UExpression getTrueExpression(); @Override abstract UExpression getFalseExpression(); @Override @Nullable Choice<Unifier> visitConditionalExpression(
      ConditionalExpressionTree conditional, Unifier unifier); @Override Kind getKind(); @Override R accept(TreeVisitor<R, D> visitor, D data); @Override JCConditional inline(Inliner inliner);  }### Answer:
@Test public void match() { assertUnifies( "true ? -1 : 1", UConditional.create(ULiteral.booleanLit(true), ULiteral.intLit(-1), ULiteral.intLit(1))); }
@Test public void equality() { ULiteral trueLit = ULiteral.booleanLit(true); ULiteral falseLit = ULiteral.booleanLit(false); ULiteral negOneLit = ULiteral.intLit(-1); ULiteral oneLit = ULiteral.intLit(1); new EqualsTester() .addEqualityGroup(UConditional.create(trueLit, negOneLit, oneLit)) .addEqualityGroup(UConditional.create(trueLit, oneLit, oneLit)) .addEqualityGroup(UConditional.create(trueLit, negOneLit, negOneLit)) .addEqualityGroup(UConditional.create(falseLit, negOneLit, oneLit)) .testEquals(); }
@Test public void serialization() { SerializableTester.reserializeAndAssert( UConditional.create(ULiteral.booleanLit(true), ULiteral.intLit(-1), ULiteral.intLit(1))); }