package rpn;
import com.google.common.collect.Lists;
import java.util.Collection;
import java.util.Collections;
import junit.framework.TestCase;
import no.hal.jex.runtime.JExercise;
import rpn.RPN;
@JExercise(description = "Tests rpn.RPN")
@SuppressWarnings("all")
public class RPNTest extends TestCase {
private RPN rPN;
@Override
protected void setUp() {
rPN = new RPN();
}
private void performOperation(final String s) {
char _charAt = s.charAt(0);
this.rPN.performOperation(_charAt);
}
private boolean operator_equals(final RPN rpn, final Collection<Double> ds) {
boolean _xblockexpression = false;
{
int _size = rpn.getSize();
int _size_1 = ds.size();
boolean _notEquals = (_size != _size_1);
if (_notEquals) {
return false;
}
final double epsilon = 0.000001d;
int count = 0;
for (final Double d : ds) {
{
int _size_2 = ds.size();
int _minus = (_size_2 - count);
int _minus_1 = (_minus - 1);
final double value = rpn.peek(_minus_1);
boolean _or = false;
double _minus_2 = (value - epsilon);
boolean _lessThan = ((d).doubleValue() < _minus_2);
if (_lessThan) {
_or = true;
} else {
double _plus = (value + epsilon);
boolean _greaterThan = ((d).doubleValue() > _plus);
_or = (_lessThan || _greaterThan);
}
if (_or) {
return false;
}
int _plus_1 = (count + 1);
count = _plus_1;
}
}
_xblockexpression = (true);
}
return _xblockexpression;
}
@JExercise(tests = "RPN()", description = "<h3>Konstrukt\u00F8r</h3>Tests \n\t\tinitialization\n")
public void testConstructor() {
_test__constructor_transitions0_effect_state(rPN);
}
@JExercise(tests = "RPN();void push(double)", description = "<h3>Legger ett element p\u00E5 stacken og sjekker st\u00F8rrelsen</h3>Tests \n\t\tthe following sequence:\n\t\t<ul>\n\t\t<li>push(1.0)</li>\n\t\t</ul>\n")
public void testPush() {
_transition_exprAction__push_transitions0_actions0(rPN);
_test__push_transitions0_effect_state(rPN);
}
@JExercise(tests = "RPN();void push(double);double pop()", description = "<h3>Legger et tilfeldig tall p\u00E5 stacken, tar det av og sjekker verdien</h3>Tests \n\t\tthe following sequence:\n\t\t<ul>\n\t\t<li>push(random)</li>\n\t\t<li>pop == random</li>\n\t\t</ul>\n")
public void testPushPop() {
double random = _init__pushPop_random();
_transition_exprAction__pushPop_transitions0_actions0(rPN, random);
_test__pushPop_transitions0_effect_state(rPN, random);
_transition_exprAction__pushPop_transitions1_actions0(rPN, random);
_test__pushPop_transitions1_effect_state(rPN, random);
}
@JExercise(tests = "RPN();void push(double)", description = "<h3>Legger to tilfeldig tall p\u00E5 stacken, og sjekker dem med peek()</h3>Tests \n\t\tthe following sequence:\n\t\t<ul>\n\t\t<li>push(random1)</li>\n\t\t<li>push(random2)</li>\n\t\t</ul>\n")
public void testPushPeek() {
double random1 = _init__pushPeek_random1();
double random2 = _init__pushPeek_random2();
_transition_exprAction__pushPeek_transitions0_actions0(rPN, random1, random2);
_test__pushPeek_transitions0_effect_state(rPN, random1, random2);
_transition_exprAction__pushPeek_transitions1_actions0(rPN, random1, random2);
_test__pushPeek_transitions1_effect_state(rPN, random1, random2);
}
@JExercise(tests = "RPN();void push(double)", description = "<h3>Legger to tilfeldig tall p\u00E5 stacken og utf\u00F8rer + (pluss)</h3>Tests \n\t\tthe following sequence:\n\t\t<ul>\n\t\t<li>push(random1), push(random2), performOperation(\'+\')</li>\n\t\t</ul>\n")
public void testPerformAdd() {
double random1 = _init__performAdd_random1();
double random2 = _init__performAdd_random2();
_transition_exprAction__performAdd_transitions0_actions0(rPN, random1, random2);
_transition_exprAction__performAdd_transitions0_actions1(rPN, random1, random2);
_transition_exprAction__performAdd_transitions0_actions2(rPN, random1, random2);
_test__performAdd_transitions0_effect_state(rPN, random1, random2);
}
@JExercise(tests = "RPN();void push(double)", description = "<h3>Legger to tilfeldig tall p\u00E5 stacken og utf\u00F8rer - (minus)</h3>Tests \n\t\tthe following sequence:\n\t\t<ul>\n\t\t<li>push(random1), push(random2), performOperation(\'-\')</li>\n\t\t</ul>\n")
public void testPerformSubtract() {
double random1 = _init__performSubtract_random1();
double random2 = _init__performSubtract_random2();
_transition_exprAction__performSubtract_transitions0_actions0(rPN, random1, random2);
_transition_exprAction__performSubtract_transitions0_actions1(rPN, random1, random2);
_transition_exprAction__performSubtract_transitions0_actions2(rPN, random1, random2);
_test__performSubtract_transitions0_effect_state(rPN, random1, random2);
}
@JExercise(tests = "RPN();void push(double)", description = "<h3>Legger to tilfeldig tall p\u00E5 stacken og utf\u00F8rer * (multiplikasjon)</h3>Tests \n\t\tthe following sequence:\n\t\t<ul>\n\t\t<li>push(random1), push(random2), performOperation(\'*\')</li>\n\t\t</ul>\n")
public void testPerformMultiply() {
double random1 = _init__performMultiply_random1();
double random2 = _init__performMultiply_random2();
_transition_exprAction__performMultiply_transitions0_actions0(rPN, random1, random2);
_transition_exprAction__performMultiply_transitions0_actions1(rPN, random1, random2);
_transition_exprAction__performMultiply_transitions0_actions2(rPN, random1, random2);
_test__performMultiply_transitions0_effect_state(rPN, random1, random2);
}
@JExercise(tests = "RPN();void push(double)", description = "<h3>Legger to tilfeldig tall p\u00E5 stacken og utf\u00F8rer / (divisjon)</h3>Tests \n\t\tthe following sequence:\n\t\t<ul>\n\t\t<li>push(random1), push(random2), performOperation(\'/\')</li>\n\t\t</ul>\n")
public void testPerformDivide() {
double random1 = _init__performDivide_random1();
double random2 = _init__performDivide_random2();
_transition_exprAction__performDivide_transitions0_actions0(rPN, random1, random2);
_transition_exprAction__performDivide_transitions0_actions1(rPN, random1, random2);
_transition_exprAction__performDivide_transitions0_actions2(rPN, random1, random2);
_test__performDivide_transitions0_effect_state(rPN, random1, random2);
}
@JExercise(tests = "RPN();void push(double)", description = "<h3>Legger to tilfeldig tall p\u00E5 stacken og utf\u00F8rer ~ (swap)</h3>Tests \n\t\tthe following sequence:\n\t\t<ul>\n\t\t<li>push(random1), push(random2), performOperation(\'~\')</li>\n\t\t</ul>\n")
public void testPerformSwap() {
double random1 = _init__performSwap_random1();
double random2 = _init__performSwap_random2();
_transition_exprAction__performSwap_transitions0_actions0(rPN, random1, random2);
_transition_exprAction__performSwap_transitions0_actions1(rPN, random1, random2);
_transition_exprAction__performSwap_transitions0_actions2(rPN, random1, random2);
_test__performSwap_transitions0_effect_state(rPN, random1, random2);
}
@JExercise(tests = "RPN()", description = "<h3>Utf\u00F8rer p (pi)</h3>Tests \n\t\tthe following sequence:\n\t\t<ul>\n\t\t<li>performOperation(\'p\')</li>\n\t\t</ul>\n")
public void testPerformPi() {
_transition_exprAction__performPi_transitions0_actions0(rPN);
_test__performPi_transitions0_effect_state(rPN);
}
@JExercise(tests = "RPN();void push(double)", description = "<h3>Utf\u00F8rer | (absoluttverdi)</h3>Tests \n\t\tthe following sequence:\n\t\t<ul>\n\t\t<li>push(random), performOperation(\'|\')</li>\n\t\t</ul>\n")
public void testPerformAbs() {
double random = _init__performAbs_random();
_transition_exprAction__performAbs_transitions0_actions0(rPN, random);
_transition_exprAction__performAbs_transitions0_actions1(rPN, random);
_test__performAbs_transitions0_effect_state(rPN, random);
}
private void _test__constructor_transitions0_effect_state(final RPN it) {
_test__constructor_transitions0_effect_state_objectTests0_test(rPN);
}
private void _test__constructor_transitions0_effect_state_objectTests0_test(final RPN it) {
int _size = it.getSize();
assertEquals("size == 0 failed", 0, _size);
}
private void _transition_exprAction__push_transitions0_actions0(final RPN it) {
try {
it.push(1.0);
} catch (junit.framework.AssertionFailedError error) {
fail("push(1.0) failed: " + error.getMessage());
}
}
private void _test__push_transitions0_effect_state(final RPN it) {
_test__push_transitions0_effect_state_objectTests0_test(rPN);
}
private void _test__push_transitions0_effect_state_objectTests0_test(final RPN it) {
int _size = it.getSize();
assertEquals("size == 1 failed after push(1.0)", 1, _size);
}
private double _init__pushPop_random() {
double _random = Math.random();
double _multiply = (_random * 100);
return _multiply;
}
private void _transition_exprAction__pushPop_transitions0_actions0(final RPN it, final double random) {
try {
it.push(random);
} catch (junit.framework.AssertionFailedError error) {
fail("push(random) failed: " + error.getMessage());
}
}
private void _test__pushPop_transitions0_effect_state(final RPN it, final double random) {
_test__pushPop_transitions0_effect_state_objectTests0_test(rPN, random);
}
private void _test__pushPop_transitions0_effect_state_objectTests0_test(final RPN it, final double random) {
int _size = it.getSize();
assertEquals("size == 1 failed after push(random)", 1, _size);
}
private void _transition_exprAction__pushPop_transitions1_actions0(final RPN it, final double random) {
double _pop = it.pop();
assertEquals("pop == random failed", random, _pop);
}
private void _test__pushPop_transitions1_effect_state(final RPN it, final double random) {
_test__pushPop_transitions1_effect_state_objectTests0_test(rPN, random);
}
private void _test__pushPop_transitions1_effect_state_objectTests0_test(final RPN it, final double random) {
int _size = it.getSize();
assertEquals("size == 0 failed after pop == random", 0, _size);
}
private double _init__pushPeek_random1() {
double _random = Math.random();
double _multiply = (_random * 100);
return _multiply;
}
private double _init__pushPeek_random2() {
double _random = Math.random();
double _multiply = (_random * 100);
return _multiply;
}
private void _transition_exprAction__pushPeek_transitions0_actions0(final RPN it, final double random1, final double random2) {
try {
it.push(random1);
} catch (junit.framework.AssertionFailedError error) {
fail("push(random1) failed: " + error.getMessage());
}
}
private void _test__pushPeek_transitions0_effect_state(final RPN it, final double random1, final double random2) {
_test__pushPeek_transitions0_effect_state_objectTests0_test(rPN, random1, random2);
}
private void _test__pushPeek_transitions0_effect_state_objectTests0_test(final RPN it, final double random1, final double random2) {
boolean _equals = this.operator_equals(it, Collections.<Double>unmodifiableList(Lists.<Double>newArrayList(Double.valueOf(random1))));
assertTrue("it == #[random1] failed after push(random1)", _equals);
}
private void _transition_exprAction__pushPeek_transitions1_actions0(final RPN it, final double random1, final double random2) {
try {
it.push(random2);
} catch (junit.framework.AssertionFailedError error) {
fail("push(random2) failed: " + error.getMessage());
}
}
private void _test__pushPeek_transitions1_effect_state(final RPN it, final double random1, final double random2) {
_test__pushPeek_transitions1_effect_state_objectTests0_test(rPN, random1, random2);
}
private void _test__pushPeek_transitions1_effect_state_objectTests0_test(final RPN it, final double random1, final double random2) {
boolean _equals = this.operator_equals(it, Collections.<Double>unmodifiableList(Lists.<Double>newArrayList(Double.valueOf(random1), Double.valueOf(random2))));
assertTrue("it == #[random1, random2] failed after push(random2)", _equals);
}
private double _init__performAdd_random1() {
double _random = Math.random();
double _multiply = (_random * 100);
return _multiply;
}
private double _init__performAdd_random2() {
double _random = Math.random();
double _multiply = (_random * 100);
return _multiply;
}
private void _transition_exprAction__performAdd_transitions0_actions0(final RPN it, final double random1, final double random2) {
try {
it.push(random1);
} catch (junit.framework.AssertionFailedError error) {
fail("push(random1) failed: " + error.getMessage());
}
}
private void _transition_exprAction__performAdd_transitions0_actions1(final RPN it, final double random1, final double random2) {
try {
it.push(random2);
} catch (junit.framework.AssertionFailedError error) {
fail("push(random2) failed: " + error.getMessage());
}
}
private void _transition_exprAction__performAdd_transitions0_actions2(final RPN it, final double random1, final double random2) {
try {
this.performOperation("+");
} catch (junit.framework.AssertionFailedError error) {
fail("performOperation('+') failed: " + error.getMessage());
}
}
private void _test__performAdd_transitions0_effect_state(final RPN it, final double random1, final double random2) {
_test__performAdd_transitions0_effect_state_objectTests0_test(rPN, random1, random2);
}
private void _test__performAdd_transitions0_effect_state_objectTests0_test(final RPN it, final double random1, final double random2) {
double _plus = (random1 + random2);
boolean _equals = this.operator_equals(it, Collections.<Double>unmodifiableList(Lists.<Double>newArrayList(Double.valueOf(_plus))));
assertTrue("it == #[random1 + random2] failed after push(random1) ,push(random2) ,performOperation('+')", _equals);
}
private double _init__performSubtract_random1() {
double _random = Math.random();
double _multiply = (_random * 100);
return _multiply;
}
private double _init__performSubtract_random2() {
double _random = Math.random();
double _multiply = (_random * 100);
return _multiply;
}
private void _transition_exprAction__performSubtract_transitions0_actions0(final RPN it, final double random1, final double random2) {
try {
it.push(random1);
} catch (junit.framework.AssertionFailedError error) {
fail("push(random1) failed: " + error.getMessage());
}
}
private void _transition_exprAction__performSubtract_transitions0_actions1(final RPN it, final double random1, final double random2) {
try {
it.push(random2);
} catch (junit.framework.AssertionFailedError error) {
fail("push(random2) failed: " + error.getMessage());
}
}
private void _transition_exprAction__performSubtract_transitions0_actions2(final RPN it, final double random1, final double random2) {
try {
this.performOperation("-");
} catch (junit.framework.AssertionFailedError error) {
fail("performOperation('-') failed: " + error.getMessage());
}
}
private void _test__performSubtract_transitions0_effect_state(final RPN it, final double random1, final double random2) {
_test__performSubtract_transitions0_effect_state_objectTests0_test(rPN, random1, random2);
}
private void _test__performSubtract_transitions0_effect_state_objectTests0_test(final RPN it, final double random1, final double random2) {
double _minus = (random1 - random2);
boolean _equals = this.operator_equals(it, Collections.<Double>unmodifiableList(Lists.<Double>newArrayList(Double.valueOf(_minus))));
assertTrue("it == #[random1 - random2] failed after push(random1) ,push(random2) ,performOperation('-')", _equals);
}
private double _init__performMultiply_random1() {
double _random = Math.random();
double _multiply = (_random * 100);
return _multiply;
}
private double _init__performMultiply_random2() {
double _random = Math.random();
double _multiply = (_random * 100);
return _multiply;
}
private void _transition_exprAction__performMultiply_transitions0_actions0(final RPN it, final double random1, final double random2) {
try {
it.push(random1);
} catch (junit.framework.AssertionFailedError error) {
fail("push(random1) failed: " + error.getMessage());
}
}
private void _transition_exprAction__performMultiply_transitions0_actions1(final RPN it, final double random1, final double random2) {
try {
it.push(random2);
} catch (junit.framework.AssertionFailedError error) {
fail("push(random2) failed: " + error.getMessage());
}
}
private void _transition_exprAction__performMultiply_transitions0_actions2(final RPN it, final double random1, final double random2) {
try {
this.performOperation("*");
} catch (junit.framework.AssertionFailedError error) {
fail("performOperation('*') failed: " + error.getMessage());
}
}
private void _test__performMultiply_transitions0_effect_state(final RPN it, final double random1, final double random2) {
_test__performMultiply_transitions0_effect_state_objectTests0_test(rPN, random1, random2);
}
private void _test__performMultiply_transitions0_effect_state_objectTests0_test(final RPN it, final double random1, final double random2) {
double _multiply = (random1 * random2);
boolean _equals = this.operator_equals(it, Collections.<Double>unmodifiableList(Lists.<Double>newArrayList(Double.valueOf(_multiply))));
assertTrue("it == #[random1 * random2] failed after push(random1) ,push(random2) ,performOperation('*')", _equals);
}
private double _init__performDivide_random1() {
double _random = Math.random();
double _multiply = (_random * 100);
return _multiply;
}
private double _init__performDivide_random2() {
double _random = Math.random();
double _multiply = (_random * 100);
double _plus = (_multiply + 1);
return _plus;
}
private void _transition_exprAction__performDivide_transitions0_actions0(final RPN it, final double random1, final double random2) {
try {
it.push(random1);
} catch (junit.framework.AssertionFailedError error) {
fail("push(random1) failed: " + error.getMessage());
}
}
private void _transition_exprAction__performDivide_transitions0_actions1(final RPN it, final double random1, final double random2) {
try {
it.push(random2);
} catch (junit.framework.AssertionFailedError error) {
fail("push(random2) failed: " + error.getMessage());
}
}
private void _transition_exprAction__performDivide_transitions0_actions2(final RPN it, final double random1, final double random2) {
try {
this.performOperation("/");
} catch (junit.framework.AssertionFailedError error) {
fail("performOperation('/') failed: " + error.getMessage());
}
}
private void _test__performDivide_transitions0_effect_state(final RPN it, final double random1, final double random2) {
_test__performDivide_transitions0_effect_state_objectTests0_test(rPN, random1, random2);
}
private void _test__performDivide_transitions0_effect_state_objectTests0_test(final RPN it, final double random1, final double random2) {
double _divide = (random1 / random2);
boolean _equals = this.operator_equals(it, Collections.<Double>unmodifiableList(Lists.<Double>newArrayList(Double.valueOf(_divide))));
assertTrue("it == #[random1 / random2] failed after push(random1) ,push(random2) ,performOperation('/')", _equals);
}
private double _init__performSwap_random1() {
double _random = Math.random();
double _multiply = (_random * 100);
return _multiply;
}
private double _init__performSwap_random2() {
double _random = Math.random();
double _multiply = (_random * 100);
double _plus = (_multiply + 1);
return _plus;
}
private void _transition_exprAction__performSwap_transitions0_actions0(final RPN it, final double random1, final double random2) {
try {
it.push(random1);
} catch (junit.framework.AssertionFailedError error) {
fail("push(random1) failed: " + error.getMessage());
}
}
private void _transition_exprAction__performSwap_transitions0_actions1(final RPN it, final double random1, final double random2) {
try {
it.push(random2);
} catch (junit.framework.AssertionFailedError error) {
fail("push(random2) failed: " + error.getMessage());
}
}
private void _transition_exprAction__performSwap_transitions0_actions2(final RPN it, final double random1, final double random2) {
try {
this.performOperation("~");
} catch (junit.framework.AssertionFailedError error) {
fail("performOperation('~') failed: " + error.getMessage());
}
}
private void _test__performSwap_transitions0_effect_state(final RPN it, final double random1, final double random2) {
_test__performSwap_transitions0_effect_state_objectTests0_test(rPN, random1, random2);
}
private void _test__performSwap_transitions0_effect_state_objectTests0_test(final RPN it, final double random1, final double random2) {
boolean _equals = this.operator_equals(it, Collections.<Double>unmodifiableList(Lists.<Double>newArrayList(Double.valueOf(random2), Double.valueOf(random1))));
assertTrue("it == #[random2, random1] failed after push(random1) ,push(random2) ,performOperation('~')", _equals);
}
private void _transition_exprAction__performPi_transitions0_actions0(final RPN it) {
try {
this.performOperation("p");
} catch (junit.framework.AssertionFailedError error) {
fail("performOperation('p') failed: " + error.getMessage());
}
}
private void _test__performPi_transitions0_effect_state(final RPN it) {
_test__performPi_transitions0_effect_state_objectTests0_test(rPN);
}
private void _test__performPi_transitions0_effect_state_objectTests0_test(final RPN it) {
boolean _equals = this.operator_equals(it, Collections.<Double>unmodifiableList(Lists.<Double>newArrayList(Double.valueOf(Math.PI))));
assertTrue("it == #[Math.PI] failed after performOperation('p')", _equals);
}
private double _init__performAbs_random() {
double _random = Math.random();
double _multiply = (_random * 100);
double _minus = (_multiply - 50);
return _minus;
}
private void _transition_exprAction__performAbs_transitions0_actions0(final RPN it, final double random) {
try {
it.push(random);
} catch (junit.framework.AssertionFailedError error) {
fail("push(random) failed: " + error.getMessage());
}
}
private void _transition_exprAction__performAbs_transitions0_actions1(final RPN it, final double random) {
try {
this.performOperation("|");
} catch (junit.framework.AssertionFailedError error) {
fail("performOperation('|') failed: " + error.getMessage());
}
}
private void _test__performAbs_transitions0_effect_state(final RPN it, final double random) {
_test__performAbs_transitions0_effect_state_objectTests0_test(rPN, random);
}
private void _test__performAbs_transitions0_effect_state_objectTests0_test(final RPN it, final double random) {
double _abs = Math.abs(random);
boolean _equals = this.operator_equals(it, Collections.<Double>unmodifiableList(Lists.<Double>newArrayList(Double.valueOf(_abs))));
assertTrue("it == #[Math.abs(random)] failed after push(random) ,performOperation('|')", _equals);
}
public static void main(final String[] args) {
no.hal.jex.standalone.JexStandalone.main(RPNTest.class);
}
}