/testability-explorer/src/test/java/com/google/test/metric/method/op/stack/Duplicate2Test.java
http://testability-explorer.googlecode.com/ · Java · 92 lines · 78 code · 14 blank · 0 comment · 1 complexity · 6d43456577b99703972f0cc219cc6b10 MD5 · raw file
- package com.google.test.metric.method.op.stack;
- import static java.util.Arrays.asList;
- import java.util.Arrays;
- import java.util.List;
- import junit.framework.TestCase;
- import com.google.test.metric.JavaType;
- import com.google.test.metric.Variable;
- import com.google.test.metric.method.Constant;
- public class Duplicate2Test extends TestCase {
- public void testDup2Single() throws Exception {
- Duplicate2 dup2 = new Duplicate2(1, 0);
- assertEquals(2, dup2.getOperatorCount());
- Variable v1 = var(1);
- Variable v2 = var(2);
- List<Variable> out = dup2.apply(asList(v1, v2));
- assertList(out, v1, v2, v1, v2);
- assertEquals("duplicate2", dup2.toString());
- }
- public void testDup2Double() throws Exception {
- Duplicate2 dup2 = new Duplicate2(1, 0);
- assertEquals(2, dup2.getOperatorCount());
- Variable v1 = var(1l);
- List<Variable> out = dup2.apply(asList(v1, v1));
- assertList(out, v1, v1, v1, v1);
- assertEquals("duplicate2", dup2.toString());
- }
- public void testDup2Offset1Single() throws Exception {
- Duplicate2 dup2 = new Duplicate2(1, 1);
- assertEquals(3, dup2.getOperatorCount());
- Variable v1 = var(1);
- Variable v2 = var(2);
- Variable v3 = var(3);
- List<Variable> out = dup2.apply(asList(v3, v2, v1));
- assertList(out, v2, v1, v3, v2, v1);
- assertEquals("duplicate2_X1", dup2.toString());
- }
- public void testDup2Offset1Double() throws Exception {
- Duplicate2 dup2 = new Duplicate2(1, 1);
- assertEquals(3, dup2.getOperatorCount());
- Variable v1 = var(1l);
- Variable v2 = var(2);
- List<Variable> out = dup2.apply(asList(v2, v1, v1));
- assertList(out, v1, v1, v2, v1, v1);
- assertEquals("duplicate2_X1", dup2.toString());
- }
- public void testDup2Offset2Single() throws Exception {
- Duplicate2 dup2 = new Duplicate2(1, 2);
- assertEquals(4, dup2.getOperatorCount());
- Variable v1 = var(1);
- Variable v2 = var(2);
- Variable v3 = var(3);
- Variable v4 = var(4);
- List<Variable> out = dup2.apply(asList(v4, v3, v2, v1));
- assertList(out, v2, v1, v4, v3, v2, v1);
- assertEquals("duplicate2_X2", dup2.toString());
- }
- public void testDup2Offset3Double() throws Exception {
- Duplicate2 dup2 = new Duplicate2(1, 2);
- assertEquals(4, dup2.getOperatorCount());
- Variable v1 = var(1l);
- Variable v2 = var(2);
- Variable v3 = var(3);
- List<Variable> out = dup2.apply(asList(v3, v2, v1, v1));
- assertList(out, v1, v1, v3, v2, v1, v1);
- assertEquals("duplicate2_X2", dup2.toString());
- }
- private void assertList(List<Variable> actual, Variable... expected) {
- assertEquals(expected.length, actual.size());
- String error = "\nExpecting: " + Arrays.toString(expected)
- + "\n Actual:" + actual + "\n";
- for (int i = 0; i < expected.length; i++) {
- assertEquals(error, expected[i], actual.get(i));
- }
- }
- private Variable var(Object value) {
- return new Constant(value, JavaType.fromClass(value.getClass()));
- }
- }