|
PolynomialDerivativeTest.java
|
package com.acme.symbolic;
import church.lang.ByteStream;
import church.lang.Collections.$Empty_set;
import church.lang.Hash.$HashCode;
import church.lang.operators.Arithmetic.*;
import church.lang.operators.Relational.$$equal;
import church.lang.operators.Streams.$$encode;
import church.primitives.Integers;
import church.primitives.Objects;
import church.util.HashMap;
import church.util.HashMap.$Map;
import com.acme.symbolic.Derivative.$Derivative;
import com.acme.symbolic.DerivativeTest.$Test;
import com.acme.symbolic.DerivativeTest.$Test0;
import com.acme.symbolic.Expression.$Evaluate;
import com.acme.symbolic.Expression.$ExprEqual;
import static com.acme.symbolic.Expression.$const;
@SuppressWarnings("unchecked")
public class PolynomialDerivativeTest {
private static final $$dof<Integer> $S0 = Integers::$dof;
private static final $$encode<ByteStream, Integer> $S1 = Integers::$encode;
private static final $$encode<ByteStream, String> $S2 = Objects::$encode;
private static final $$encode<ByteStream, Expression<Integer>> $S3 = Expression.$encode($S1, $S2);
private static final $$sum<Integer> $S4 = Integers::$sum;
private static final $$neg<Integer> $S5 = Integers::$neg;
private static final $$sub<Integer> $S6 = Integers::$sub;
private static final $$prd<Integer, Integer> $S7 = Integers::$prd;
private static final $$div<Integer, Integer> $S8 = PolynomialDerivativeTest::$div;
private static final $$pow<Integer, Integer> $S9 = Integers::$pow;
private static final $Evaluate<Integer> $S10 = Expression.evaluate($S4, $S5, $S6, $S7, $S8, $S9);
private static final $Additive_identity<Integer> $S11 = Integers::additive_identity;
private static final $Additive_identity<Expression<Integer>> $S12 = Expression.additive_identity($S11);
private static final $$equal<Integer> $S13 = Integers::$equal;
private static final $ExprEqual<Integer> $S14 = Expression.exprEqual($S13);
private static final $$equal<Expression<Integer>> $S15 = Expression.$equal($S14);
private static final $Multiplicative_identity<Integer> $S16 = Integers::multiplicative_identity;
private static final $Multiplicative_identity<Expression<Integer>> $S17 = Expression.multiplicative_identity($S16);
private static final $$prd<Expression<Integer>, Expression<Integer>> $S18 = Expression.$prd($S15, $S12, $S17);
private static final $$sum<Expression<Integer>> $S19 = Expression.$sum($S15, $S12);
private static final $$neg<Expression<Integer>> $S20 = Expression::$neg;
private static final $$sub<Expression<Integer>> $S21 = Expression.$sub($S15, $S12, $S20);
private static final $$div<Expression<Integer>, Expression<Integer>> $S22 = Expression.$div($S15, $S12, $S17);
private static final $$pow<Expression<Integer>, Integer> $S23 = Expression.$pow($S15, $S12, $S13, $S11, $S17, $S16);
private static final $Derivative<Integer> $S24 = Derivative.derivative($S12, $S15, $S17, $S18, $S19, $S20, $S21, $S22, $S23, $S6, $S16);
private static final $Test<Integer> $S25 = DerivativeTest.test($S3, $S10, $S1, $S24, $S13);
private static final $$equal<String> $S26 = Objects::$equal;
private static final $HashCode<String> $S27 = Objects::hashCode;
private static final $Map<String, church.lang.Functions.Function1<Integer, Integer>> $S28 = HashMap.map($S26, $S27);
private static final $Empty_set<HashMap<String, church.lang.Functions.Function1<Integer, Integer>>> $S29 = HashMap.empty_set($S28);
private static final $Map<String, church.lang.Functions.Function1<Expression<Integer>, Expression<Integer>>> $S30 = HashMap.map($S26, $S27);
private static final $Empty_set<HashMap<String, church.lang.Functions.Function1<Expression<Integer>, Expression<Integer>>>> $S31 = HashMap.empty_set($S30);
private static final $Test0<Integer> $S32 = DerivativeTest.test0($S25, $S29, $S31);
public static int $div(int x, int y) {
return $S0.$dof(x, y);
}
public static void main(String[] args) {
$S32.test0(x -> $S19.$sum($S19.$sum($S19.$sum($S23.$pow(x, 3), $S18.$prd($const(2), $S23.$pow(x, 2))), $S18.$prd($const(3), x)), $const(4)), 1, 10);
}
}