| @@ -0,0 +1,50 @@ | ||
| package Numbers; | ||
|
|
||
| import java.math.BigInteger; | ||
|
|
||
| /** | ||
| * Created by Aydar on 20.04.14. | ||
| */ | ||
| public class BigIntegerNumber extends Number<BigIntegerNumber> { | ||
| private BigInteger x; | ||
|
|
||
| public BigIntegerNumber(BigInteger x){ | ||
| this.x = x; | ||
| } | ||
|
|
||
| public BigIntegerNumber(String s){ | ||
| this.x = new BigInteger(s); | ||
| } | ||
|
|
||
| public BigIntegerNumber multiply(BigIntegerNumber num) { | ||
| return new BigIntegerNumber(x.multiply( num.x)); | ||
| } | ||
|
|
||
| public BigIntegerNumber divide(BigIntegerNumber num) { | ||
| return new BigIntegerNumber(x.divide(num.x)); | ||
| } | ||
|
|
||
| public BigIntegerNumber subtract(BigIntegerNumber num) { | ||
| return new BigIntegerNumber(x.subtract(num.x)); | ||
| } | ||
|
|
||
| public BigIntegerNumber add(BigIntegerNumber num) { | ||
| return new BigIntegerNumber(x.add(num.x)); | ||
| } | ||
|
|
||
| public BigIntegerNumber negate(){ | ||
| return new BigIntegerNumber(x.negate()); | ||
| } | ||
|
|
||
| public BigIntegerNumber parse(String s){ | ||
| return new BigIntegerNumber(s); | ||
| } | ||
|
|
||
| public String toString(){ | ||
| return String.valueOf(x); | ||
| } | ||
|
|
||
| public BigIntegerNumber abs() { | ||
| return new BigIntegerNumber(x.abs()); | ||
| } | ||
| } |
| @@ -0,0 +1,10 @@ | ||
| package Numbers; | ||
|
|
||
| /** | ||
| * Created by Aydar on 22.04.14. | ||
| */ | ||
| public class BigIntegerParser implements ConstantParser{ | ||
| public BigIntegerNumber parse(String s){ | ||
| return new BigIntegerNumber(s); | ||
| } | ||
| } |
| @@ -0,0 +1,8 @@ | ||
| package Numbers; | ||
|
|
||
| /** | ||
| * Created by Aydar on 22.04.14. | ||
| */ | ||
| public interface ConstantParser<Number> { | ||
| Number parse(String s); | ||
| } |
| @@ -0,0 +1,48 @@ | ||
| package Numbers; | ||
|
|
||
| /** | ||
| * Created by Aydar on 20.04.14. | ||
| */ | ||
| public class DoubleNumber extends Number<DoubleNumber> { | ||
| private double x; | ||
|
|
||
| public DoubleNumber(double x){ | ||
| this.x = x; | ||
| } | ||
|
|
||
| public DoubleNumber(String s){ | ||
| this.x = Double.parseDouble(s); | ||
| } | ||
|
|
||
| public DoubleNumber multiply(DoubleNumber num) { | ||
| return new DoubleNumber(x * num.x); | ||
| } | ||
|
|
||
| public DoubleNumber divide(DoubleNumber num) { | ||
| return new DoubleNumber(x / num.x); | ||
| } | ||
|
|
||
| public DoubleNumber subtract(DoubleNumber num) { | ||
| return new DoubleNumber(x - num.x); | ||
| } | ||
|
|
||
| public DoubleNumber add(DoubleNumber num) { | ||
| return new DoubleNumber(x + num.x); | ||
| } | ||
|
|
||
| public DoubleNumber negate(){ | ||
| return new DoubleNumber(-x); | ||
| } | ||
|
|
||
| public DoubleNumber parse(String s){ | ||
| return new DoubleNumber(s); | ||
| } | ||
|
|
||
| public String toString(){ | ||
| return String.valueOf(x); | ||
| } | ||
|
|
||
| public DoubleNumber abs() { | ||
| return new DoubleNumber(Math.abs(x)); | ||
| } | ||
| } |
| @@ -0,0 +1,10 @@ | ||
| package Numbers; | ||
|
|
||
| /** | ||
| * Created by Aydar on 22.04.14. | ||
| */ | ||
| public class DoubleParser implements ConstantParser{ | ||
| public DoubleNumber parse(String s){ | ||
| return new DoubleNumber(s); | ||
| } | ||
| } |
| @@ -0,0 +1,15 @@ | ||
| package Numbers; | ||
|
|
||
| import BinaryExpressions.Expression3; | ||
|
|
||
| /** | ||
| * Created by Aydar on 06.05.14. | ||
| */ | ||
| @FunctionalInterface | ||
| class FunctionExpression<T extends Number<T> > { | ||
| interface Function<T extends Number<T> > { | ||
| T apply(T arg); | ||
| } | ||
| public Function<T> functionToApply; | ||
| public Expression3<T> argument; | ||
| } |
| @@ -0,0 +1,48 @@ | ||
| package Numbers; | ||
|
|
||
| /** | ||
| * Created by Aydar on 20.04.14. | ||
| */ | ||
| public class IntegerNumber extends Number<IntegerNumber> { | ||
| private int x; | ||
|
|
||
| public IntegerNumber(int x) { | ||
| this.x = x; | ||
| } | ||
|
|
||
| public IntegerNumber(String s) { | ||
| this.x = Integer.parseInt(s); | ||
| } | ||
|
|
||
| public IntegerNumber multiply(IntegerNumber num) { | ||
| return new IntegerNumber(x * num.x); | ||
| } | ||
|
|
||
| public IntegerNumber divide(IntegerNumber num) { | ||
| return new IntegerNumber(x / num.x); | ||
| } | ||
|
|
||
| public IntegerNumber subtract(IntegerNumber num) { | ||
| return new IntegerNumber(x - num.x); | ||
| } | ||
|
|
||
| public IntegerNumber add(IntegerNumber num) { | ||
| return new IntegerNumber(x + num.x); | ||
| } | ||
|
|
||
| public IntegerNumber negate() { | ||
| return new IntegerNumber(-x); | ||
| } | ||
|
|
||
| public IntegerNumber parse(String s) { | ||
| return new IntegerNumber(s); | ||
| } | ||
|
|
||
| public String toString() { | ||
| return String.valueOf(x); | ||
| } | ||
|
|
||
| public IntegerNumber abs() { | ||
| return new IntegerNumber(Math.abs(x)); | ||
| } | ||
| } |
| @@ -0,0 +1,10 @@ | ||
| package Numbers; | ||
|
|
||
| /** | ||
| * Created by Aydar on 22.04.14. | ||
| */ | ||
| public class IntegerParser implements ConstantParser{ | ||
| public IntegerNumber parse(String s){ | ||
| return new IntegerNumber(s); | ||
| } | ||
| } |
| @@ -0,0 +1,38 @@ | ||
| package Numbers; | ||
|
|
||
| import java.util.HashMap; | ||
|
|
||
| /** | ||
| * Created by Aydar on 20.04.14. | ||
| */ | ||
| public abstract class Number<T> { | ||
| public abstract T multiply(T num); | ||
|
|
||
| public abstract T add(T num); | ||
|
|
||
| public abstract T subtract(T num); | ||
|
|
||
| public abstract T divide(T num); | ||
|
|
||
| public abstract T negate(); | ||
|
|
||
| public abstract T parse(String s); | ||
|
|
||
| public abstract T abs(); | ||
|
|
||
| public abstract String toString(); | ||
|
|
||
| public HashMap<String, Pair<Integer, FunctionExpression<T, T>>> functions() { | ||
| HashMap<String, Pair<Integer, FunctionExpression<T, T>>> map = new HashMap<>(); | ||
| map.put("abs", new Pair<>(5, (T... arguments) -> abs())); | ||
| map.put("+", new Pair<>(1, (T... arguments) -> add(arguments[0]))); | ||
| map.put("-", new Pair<>(1, (T... arguments) -> subtract(arguments[0]))); | ||
| map.put("*", new Pair<>(2, (T... arguments) -> multiply(arguments[0]))); | ||
| map.put("/", new Pair<>(2, (T... arguments) -> divide(arguments[0]))); | ||
|
|
||
| //map.put("-", (IntegerNumber... arguments) -> negate()); | ||
| map.put("cos", new Pair<Integer, FunctionExpression<T, T>>()); | ||
| return map; | ||
| } | ||
| } | ||
|
|
| @@ -0,0 +1,14 @@ | ||
| package Numbers; | ||
|
|
||
| /** | ||
| * Created by Aydar on 06.05.14. | ||
| */ | ||
| public class Pair<K, V> { | ||
| public K first; | ||
| public V second; | ||
|
|
||
| public Pair(K first, V second){ | ||
| this.first = first; | ||
| this.second = second; | ||
| } | ||
| } |
| @@ -0,0 +1,12 @@ | ||
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <module type="JAVA_MODULE" version="4"> | ||
| <component name="NewModuleRootManager" inherit-compiler-output="true"> | ||
| <exclude-output /> | ||
| <content url="file://$MODULE_DIR$"> | ||
| <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> | ||
| </content> | ||
| <orderEntry type="inheritedJdk" /> | ||
| <orderEntry type="sourceFolder" forTests="false" /> | ||
| </component> | ||
| </module> | ||
|
|
| @@ -0,0 +1,39 @@ | ||
| package BinaryExpressions; | ||
|
|
||
| public class Add extends BinaryOperation { | ||
| public Add(Expression3 leftOperand, Expression3 rightOperand) { | ||
| super(leftOperand, rightOperand); | ||
| } | ||
|
|
||
| public int evaluate(int x, int y, int z) { | ||
| return leftOperand.evaluate(x, y, z) + rightOperand.evaluate(x, y, z); | ||
| } | ||
|
|
||
| public String toString() { | ||
| return leftOperand.toString() + " + " + rightOperand.toString(); | ||
| } | ||
|
|
||
| public int value() { | ||
| return 0; | ||
| } | ||
|
|
||
| public String name(){ | ||
| return null; | ||
| } | ||
|
|
||
| public Expression3 simplify() { | ||
| leftOperand = leftOperand.simplify(); | ||
| rightOperand = rightOperand.simplify(); | ||
| if (leftOperand.getClass() == Const.class && rightOperand.getClass() == Const.class){ | ||
| return new Const(leftOperand.value() + rightOperand.value()); | ||
| } | ||
| if (leftOperand.getClass() == Const.class && leftOperand.value() == 0){ | ||
| return rightOperand; | ||
| } | ||
| if (rightOperand.getClass() == Const.class && rightOperand.value() == 0){ | ||
| return leftOperand; | ||
| } | ||
|
|
||
| return this; | ||
| } | ||
| } |
| @@ -0,0 +1,17 @@ | ||
| package BinaryExpressions; | ||
|
|
||
| public abstract class BinaryOperation implements Expression3 { | ||
| protected Expression3 leftOperand; | ||
| protected Expression3 rightOperand; | ||
|
|
||
| public BinaryOperation(Expression3 leftOperand, Expression3 rightOperand) { | ||
| this.leftOperand = leftOperand; | ||
| this.rightOperand = rightOperand; | ||
| } | ||
|
|
||
| public abstract int evaluate(int x, int y, int z); | ||
|
|
||
| public abstract String toString(); | ||
|
|
||
| public abstract Expression3 simplify(); | ||
| } |
| @@ -0,0 +1,28 @@ | ||
| package BinaryExpressions; | ||
| public class Const implements Expression3{ | ||
| private final int value; | ||
|
|
||
| public Const(int value){ | ||
| this.value = value; | ||
| } | ||
|
|
||
| public int evaluate(int x, int y, int z){ | ||
| return value; | ||
| } | ||
|
|
||
| public String toString() { | ||
| return "" + value; | ||
| } | ||
|
|
||
| public String name() { | ||
| return null; | ||
| } | ||
|
|
||
| public Expression3 simplify() { | ||
| return this; | ||
| } | ||
|
|
||
| public int value() { | ||
| return value; | ||
| } | ||
| } |
| @@ -0,0 +1,49 @@ | ||
| package BinaryExpressions; | ||
|
|
||
| public class Divide extends BinaryOperation { | ||
| public Divide(Expression3 leftOperand, Expression3 rightOperand) { | ||
| super(leftOperand, rightOperand); | ||
| } | ||
|
|
||
| public int evaluate(int x, int y, int z) { | ||
| return leftOperand.evaluate(x, y, z) / rightOperand.evaluate(x, y, z); | ||
| } | ||
|
|
||
| public String toString() { | ||
| String l = leftOperand.toString(), r = rightOperand.toString(); | ||
| if (leftOperand.getClass() == Add.class || leftOperand.getClass() == Subtract.class){ | ||
| l = "(" + l + ")"; | ||
| } | ||
| if (rightOperand.getClass() == Add.class || rightOperand.getClass() == Subtract.class){ | ||
| r = "(" + r + ")"; | ||
| } | ||
| return l + " / " + r; | ||
| } | ||
|
|
||
| public Expression3 simplify() { | ||
| leftOperand = leftOperand.simplify(); | ||
| rightOperand = rightOperand.simplify(); | ||
| if (leftOperand.getClass() == Const.class && rightOperand.getClass() == Const.class){ | ||
| return new Const(leftOperand.value() / rightOperand.value()); | ||
| } | ||
| if (leftOperand.getClass() == Const.class && leftOperand.value() == 0){ | ||
| return new Const(0); | ||
| } | ||
| if (rightOperand.getClass() == Const.class && rightOperand.value() == 1){ | ||
| return leftOperand; | ||
| } | ||
| if (leftOperand.getClass() == Variable.class && rightOperand.getClass() == Variable.class && | ||
| leftOperand.name() == rightOperand.name()){ | ||
| return new Const(1); | ||
| } | ||
| return this; | ||
| } | ||
|
|
||
| public int value() { | ||
| return 0; | ||
| } | ||
|
|
||
| public String name() { | ||
| return null; | ||
| } | ||
| } |
| @@ -0,0 +1,13 @@ | ||
| package BinaryExpressions; | ||
|
|
||
| public interface Expression3{ | ||
| public int evaluate(int x, int y, int z); | ||
|
|
||
| public String toString(); | ||
|
|
||
| public Expression3 simplify(); | ||
|
|
||
| public int value(); | ||
|
|
||
| public String name(); | ||
| } |
| @@ -0,0 +1,55 @@ | ||
| package BinaryExpressions; | ||
| public class Multiply extends BinaryOperation{ | ||
| public Multiply(Expression3 leftOperand, Expression3 rightOperand){ | ||
| super(leftOperand, rightOperand); | ||
| } | ||
|
|
||
| public int evaluate(int x, int y, int z){ | ||
| return leftOperand.evaluate(x, y, z) * rightOperand.evaluate(x, y, z); | ||
| } | ||
|
|
||
| public String toString() { | ||
| String l = leftOperand.toString(), r = rightOperand.toString(); | ||
| if (leftOperand.getClass() == Add.class || leftOperand.getClass() == Subtract.class){ | ||
| l = "(" + l + ")"; | ||
| } | ||
| if (rightOperand.getClass() == Add.class || rightOperand.getClass() == Subtract.class){ | ||
| r = "(" + r + ")"; | ||
| } | ||
| return l + " * " + r; | ||
| } | ||
|
|
||
| public int value() { | ||
| return 0; | ||
| } | ||
|
|
||
| public String name() { | ||
| return null; | ||
| } | ||
|
|
||
| public Expression3 simplify() { | ||
| leftOperand = leftOperand.simplify(); | ||
| rightOperand = rightOperand.simplify(); | ||
| if (leftOperand.getClass() == Const.class && rightOperand.getClass() == Const.class){ | ||
| return new Const(leftOperand.value() * rightOperand.value()); | ||
| } | ||
| if (leftOperand.getClass() == Const.class){ | ||
| if (leftOperand.value() == 0){ | ||
| return new Const(0); | ||
| } | ||
| if (leftOperand.value() == 1){ | ||
| return rightOperand; | ||
| } | ||
| } | ||
| if (rightOperand.getClass() == Const.class){ | ||
| if (rightOperand.value() == 0){ | ||
| return new Const(0); | ||
| } | ||
| if (rightOperand.value() == 1){ | ||
| return leftOperand; | ||
| } | ||
| } | ||
|
|
||
| return this; | ||
| } | ||
| } |
| @@ -0,0 +1,39 @@ | ||
| package BinaryExpressions; | ||
|
|
||
| public class Subtract extends BinaryOperation { | ||
| public Subtract(Expression3 leftOperand, Expression3 rightOperand) { | ||
| super(leftOperand, rightOperand); | ||
| } | ||
|
|
||
| public int evaluate(int x, int y, int z) { | ||
| return leftOperand.evaluate(x, y, z) - rightOperand.evaluate(x, y, z); | ||
| } | ||
|
|
||
| public String toString() { | ||
| return leftOperand.toString() + " - " + rightOperand.toString(); | ||
| } | ||
|
|
||
| public int value() { | ||
| return 0; | ||
| } | ||
|
|
||
| public String name() { | ||
| return null; | ||
| } | ||
|
|
||
| public Expression3 simplify() { | ||
| leftOperand = leftOperand.simplify(); | ||
| rightOperand = rightOperand.simplify(); | ||
| if (leftOperand.getClass() == Const.class && rightOperand.getClass() == Const.class){ | ||
| return new Const(leftOperand.value() - rightOperand.value()); | ||
| } | ||
| if (rightOperand.getClass() == Const.class && rightOperand.value() == 0){ | ||
| return leftOperand; | ||
| } | ||
| if (leftOperand.getClass() == Variable.class && rightOperand.getClass() == Variable.class | ||
| && leftOperand.name() == rightOperand.name()){ | ||
| return new Const(0); | ||
| } | ||
| return this; | ||
| } | ||
| } |
| @@ -0,0 +1,29 @@ | ||
| package BinaryExpressions; | ||
| public class UnaryMinus implements Expression3{ | ||
| Expression3 operand; | ||
|
|
||
| public UnaryMinus(Expression3 operand){ | ||
| this.operand = operand; | ||
| } | ||
|
|
||
| public int evaluate(int x, int y, int z){ | ||
| return -operand.evaluate(x, y, z); | ||
| } | ||
|
|
||
| public String toString() { | ||
| return "-" + operand.toString(); | ||
| } | ||
|
|
||
| public int value() { | ||
| return 0; | ||
| } | ||
|
|
||
| public String name() { | ||
| return null; | ||
| } | ||
|
|
||
| public Expression3 simplify() { | ||
| operand = simplify(); | ||
| return this; | ||
| } | ||
| } |
| @@ -0,0 +1,30 @@ | ||
| package BinaryExpressions; | ||
|
|
||
| public class Variable implements Expression3{ | ||
| // private final int value; | ||
| private final String name; | ||
|
|
||
| public Variable(String name) { | ||
| this.name = name; | ||
| } | ||
|
|
||
| public int evaluate(int x, int y, int z) { | ||
| return name.equals("x") ? x : name.equals("y") ? y : z; | ||
| } | ||
|
|
||
| public String toString() { | ||
| return name; | ||
| } | ||
|
|
||
| public int value() { | ||
| return 0; | ||
| } | ||
|
|
||
| public Expression3 simplify() { | ||
| return this; | ||
| } | ||
|
|
||
| public String name() { | ||
| return name; | ||
| } | ||
| } |
| @@ -0,0 +1,131 @@ | ||
| /** | ||
| * Created by Aydar on 31.03.14. | ||
| */ | ||
|
|
||
| import BinaryExpressions.*; | ||
|
|
||
| public class ExpressionParser { | ||
| enum Lexeme { | ||
| plus, minus, mul, num, open, close, div, var, not, abs; | ||
| } | ||
|
|
||
| private static Lexeme curLex; | ||
| private static String s, name; | ||
| private static int pos, num; | ||
|
|
||
| private static Expression3 expr() { | ||
| Expression3 c = add(); | ||
| while (curLex == Lexeme.minus || curLex == Lexeme.plus) { | ||
| Lexeme l = curLex; | ||
| nextLexeme(); | ||
| if (l == Lexeme.plus) { | ||
| c = new Add(c, add()); | ||
| } else { | ||
| c = new Subtract(c, add()); | ||
| } | ||
| } | ||
| return c; | ||
| } | ||
|
|
||
| private static Expression3 add() { | ||
| Expression3 c = mul(); | ||
| while (curLex == Lexeme.mul || curLex == Lexeme.div) { | ||
| Lexeme l = curLex; | ||
| nextLexeme(); | ||
| if (l == Lexeme.mul) { | ||
| c = new Multiply(c, mul()); | ||
| } else { | ||
| c = new Divide(c, mul()); | ||
| } | ||
| } | ||
| return c; | ||
| } | ||
|
|
||
| private static Expression3 mul() { | ||
| /* if (curLex == Lexeme.abs) { | ||
| nextLexeme(); | ||
| return new Abs(mul()); | ||
| } else if (curLex == Lexeme.not) { | ||
| nextLexeme(); | ||
| return new Not(mul()); | ||
| } else*/ if (curLex == Lexeme.minus) { | ||
| nextLexeme(); | ||
| return new UnaryMinus(mul()); | ||
| } else if (curLex == Lexeme.num) { | ||
| int cur = num; | ||
| nextLexeme(); | ||
| return new Const(cur); | ||
| } else if (curLex == Lexeme.var) { | ||
| String cur = name; | ||
| nextLexeme(); | ||
| return new Variable(cur); | ||
| } else { | ||
| nextLexeme(); | ||
| Expression3 cur = expr(); | ||
| nextLexeme(); | ||
| return cur; | ||
| } | ||
| } | ||
|
|
||
| private static void nextLexeme() { | ||
| for (; pos < s.length() && Character.isWhitespace(s.charAt(pos)); ++pos) { | ||
| } | ||
| if (pos >= s.length()) { | ||
| return; | ||
| } | ||
| char c = s.charAt(pos); | ||
| if (Character.isDigit(c)) { | ||
| curLex = Lexeme.num; | ||
| num = findNum(); | ||
| return; | ||
| } else if (Character.isLetter(c)) { | ||
| if (c == 'a') { | ||
| curLex = Lexeme.abs; | ||
| pos += 2; | ||
| } else { | ||
| curLex = Lexeme.var; | ||
| name = findName(); | ||
| return; | ||
| } | ||
| } else if (c == '(') { | ||
| curLex = Lexeme.open; | ||
| } else if (c == '~') { | ||
| curLex = Lexeme.not; | ||
| } else if (c == '-') { | ||
| curLex = Lexeme.minus; | ||
| } else if (c == '+') { | ||
| curLex = Lexeme.plus; | ||
| } else if (c == '*') { | ||
| curLex = Lexeme.mul; | ||
| } else if (c == ')') { | ||
| curLex = Lexeme.close; | ||
| } else if (c == '/') { | ||
| curLex = Lexeme.div; | ||
| } | ||
| ++pos; | ||
| } | ||
|
|
||
| private static String findName() { | ||
| for (; pos < s.length() && !Character.isLetter(s.charAt(pos)); ++pos) { | ||
| } | ||
| int l = pos; | ||
| for (; pos < s.length() && Character.isLetter(s.charAt(pos)); ++pos) { | ||
| } | ||
| return s.substring(l, pos); | ||
| } | ||
|
|
||
| private static int findNum() { | ||
| int l = pos; | ||
| for (; pos < s.length() && Character.isDigit(s.charAt(pos)); ++pos) { | ||
| } | ||
| return (int) Long.parseLong(s.substring(l, pos)); | ||
| } | ||
|
|
||
| public static Expression3 parse(String t) { | ||
| s = t; | ||
| pos = 0; | ||
| nextLexeme(); | ||
| return expr(); | ||
| } | ||
| } | ||
|
|
| @@ -0,0 +1,12 @@ | ||
| import BinaryExpressions.*; | ||
|
|
||
| /** | ||
| * Created by Aydar on 05.04.14. | ||
| */ | ||
| public class Simplifier { | ||
| public static void main(String[] args){ | ||
| String s = args.toString(); | ||
| // s = "2 * (x + 1) - 0"; | ||
| System.out.println(new ExpressionParser().parse(s).simplify().toString()); | ||
| } | ||
| } |
| @@ -0,0 +1,27 @@ | ||
| public abstract class AbstractStack implements Stack{ | ||
| protected int size; | ||
|
|
||
| public int size(){ | ||
| return size; | ||
| } | ||
|
|
||
| public boolean isEmpty(){ | ||
| return size == 0; | ||
| } | ||
|
|
||
| public Object peek(){ | ||
| Object res = pop(); | ||
| push(res); | ||
| return res; | ||
| } | ||
|
|
||
| public Object pop(){ | ||
| assert size > 0; | ||
| --size; | ||
| return popImpl(); | ||
| } | ||
|
|
||
| protected abstract Object popImpl(); | ||
| } | ||
|
|
||
| // protected - visible for ancestor |
| @@ -0,0 +1,27 @@ | ||
| public abstract class AbstractStack implements Stack{ | ||
| protected int size; | ||
|
|
||
| public int size(){ | ||
| return size; | ||
| } | ||
|
|
||
| public boolean isEmpty(){ | ||
| return size == 0; | ||
| } | ||
|
|
||
| public Object peek(){ | ||
| Object res = pop(); | ||
| push(res); | ||
| return res; | ||
| } | ||
|
|
||
| public Object pop(){ | ||
| assert size > 0; | ||
| --size; | ||
| return popImpl(); | ||
| } | ||
|
|
||
| protected abstract Object popImpl(); | ||
| } | ||
|
|
||
| // protected - visible for |
| @@ -0,0 +1,35 @@ | ||
| public class ArrayStack extends AbstractStack { | ||
| private Object[] elements = new Object[1]; | ||
|
|
||
| public void push(Object obj){ | ||
| ensureCapacity(size + 1); | ||
| elements[size++] = obj; | ||
| } | ||
|
|
||
| private void ensureCapacity(int capacity){ | ||
| if (elements.length >= capacity){ | ||
| return; | ||
| } | ||
| Object[] e = new Object[capacity << 1]; | ||
| for (int i = 0; i < size; ++i){ | ||
| e[i] = elements[i]; | ||
| } | ||
| elements = e; | ||
| } | ||
|
|
||
| protected Object popImpl(){ | ||
| return elements[--size]; | ||
| } | ||
| /* public Object pop(){ | ||
| assert size > 0; | ||
| Object result = elements[size - 1]; | ||
| elements[--size] = null; | ||
| return result; | ||
| } | ||
| public Object peek(){ | ||
| assert size > 0; | ||
| return elements[size - 1]; | ||
| } | ||
| */ | ||
| } |
| @@ -0,0 +1,27 @@ | ||
| public class LinkedStack extends AbstractStack{ | ||
| private Node head; | ||
|
|
||
| public void push(Object element){ | ||
| head = new Node(element, head); | ||
| } | ||
|
|
||
| protected Object popImpl(){ | ||
| Object res = head.value; | ||
| head = head.next; | ||
| return res; | ||
| } | ||
|
|
||
| private static class Node { | ||
| private final Object value; | ||
| private final Node next; | ||
|
|
||
|
|
||
| public Node(Object v, Node n){ | ||
| value = v; | ||
| next = n; | ||
| } | ||
| } | ||
|
|
||
| } | ||
| // final - determines once | ||
| // static - availabalnace of Outer this |
| @@ -0,0 +1,12 @@ | ||
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <module type="JAVA_MODULE" version="4"> | ||
| <component name="NewModuleRootManager" inherit-compiler-output="true"> | ||
| <exclude-output /> | ||
| <content url="file://$MODULE_DIR$"> | ||
| <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> | ||
| </content> | ||
| <orderEntry type="inheritedJdk" /> | ||
| <orderEntry type="sourceFolder" forTests="false" /> | ||
| </component> | ||
| </module> | ||
|
|
| @@ -0,0 +1,9 @@ | ||
| public interface Stack{ | ||
| int size(); | ||
| boolean isEmpty(); | ||
| Object peek(); | ||
| Object pop(); | ||
| void push(Object e); | ||
| // public may not be written | ||
| // others r not allowed | ||
| } |
| @@ -0,0 +1,11 @@ | ||
| public class StackTest{ | ||
| public static void main(String[] args){ | ||
| ArrayStack stack = new ArrayStack(); | ||
| for (int i = 0; i < 5; ++i){ | ||
| stack.push(i); | ||
| } | ||
| while (!stack.isEmpty()){ | ||
| System.out.println(stack.pop()); | ||
| } | ||
| } | ||
| } |
| @@ -0,0 +1,12 @@ | ||
| public class A{ | ||
| public static void main(String[] args){ | ||
| byte a = 0; //Byte | ||
| short b = 1; //Short | ||
| int c = 0b10101010; //BINARY // Integer | ||
| long d = 30_000_000_000_000_000_000_000L; // Long | ||
| //------------------------------------------- | ||
| float f = 0.123f; //Float | ||
| double dd = 0.123123; //Double | ||
| //------------------------------------------- | ||
| } | ||
| } |
| @@ -0,0 +1,12 @@ | ||
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <module type="JAVA_MODULE" version="4"> | ||
| <component name="NewModuleRootManager" inherit-compiler-output="true"> | ||
| <exclude-output /> | ||
| <content url="file://$MODULE_DIR$"> | ||
| <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> | ||
| </content> | ||
| <orderEntry type="inheritedJdk" /> | ||
| <orderEntry type="sourceFolder" forTests="false" /> | ||
| </component> | ||
| </module> | ||
|
|
| @@ -0,0 +1,56 @@ | ||
| import neerc.ifmo.AA; | ||
|
|
||
| import static neerc.ifmo.AA.PI; | ||
|
|
||
| /* | ||
| 1) obvious name | ||
| 2) * | ||
| 3) | ||
| */ | ||
|
|
||
|
|
||
| public class BB extends AA { | ||
| static class C { | ||
| int y = 0; | ||
| void f(){ | ||
| System.err.println(y); | ||
| } | ||
| } | ||
|
|
||
| interface If { | ||
| void run(); | ||
| } | ||
|
|
||
| BB.C c = new C(); | ||
|
|
||
|
|
||
|
|
||
| int x = 15; | ||
|
|
||
| class A { | ||
| int x = 10; | ||
|
|
||
| void a() { | ||
| System.err.println(x); | ||
| System.err.println(BB.this.x); | ||
| System.err.println(((AA)BB.this).x); | ||
| System.err.println(BB.super.x); | ||
| } | ||
| } | ||
|
|
||
| //anonim class | ||
| void run() { | ||
| final int x = 0; | ||
| // int x = 0; cannot be catched | ||
| new If() { | ||
| @Override | ||
| public void run() { | ||
| System.err.println(x); | ||
| } | ||
| }.run(); | ||
| } | ||
|
|
||
| public static void main(String[] args) { | ||
| new BB().run(); | ||
| } | ||
| } |
| @@ -0,0 +1,19 @@ | ||
| /** | ||
| * Created by Aydar on 27.03.14. | ||
| */ | ||
| public class C { | ||
| int x; | ||
|
|
||
| { | ||
| x = 10; | ||
| } | ||
|
|
||
| C(int x) { | ||
| this.x = x; | ||
| } | ||
| /* | ||
| * static final int x; | ||
| * static { | ||
| * x = 10; | ||
| * }*/ | ||
| } |
| @@ -0,0 +1,12 @@ | ||
| package neerc.ifmo; | ||
| /** | ||
| * Created by Aydar on 27.03.14. | ||
| */ | ||
| public class AA { | ||
| static double PI = 3.14; | ||
| public int x; | ||
| public int x1; | ||
| private int x2; | ||
| protected int x3; | ||
| /*package local*/ int x4; | ||
| } |
| @@ -0,0 +1,12 @@ | ||
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <module type="JAVA_MODULE" version="4"> | ||
| <component name="NewModuleRootManager" inherit-compiler-output="true"> | ||
| <exclude-output /> | ||
| <content url="file://$MODULE_DIR$"> | ||
| <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> | ||
| </content> | ||
| <orderEntry type="inheritedJdk" /> | ||
| <orderEntry type="sourceFolder" forTests="false" /> | ||
| </component> | ||
| </module> | ||
|
|
| @@ -0,0 +1,8 @@ | ||
| /** | ||
| * Created by Aydar on 03.04.14. | ||
| */ | ||
| public class Main { | ||
| public static void main(String[] args) { | ||
|
|
||
| } | ||
| } |
| @@ -0,0 +1,12 @@ | ||
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <module type="JAVA_MODULE" version="4"> | ||
| <component name="NewModuleRootManager" inherit-compiler-output="true"> | ||
| <exclude-output /> | ||
| <content url="file://$MODULE_DIR$"> | ||
| <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> | ||
| </content> | ||
| <orderEntry type="inheritedJdk" /> | ||
| <orderEntry type="sourceFolder" forTests="false" /> | ||
| </component> | ||
| </module> | ||
|
|
| @@ -0,0 +1,12 @@ | ||
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <module type="JAVA_MODULE" version="4"> | ||
| <component name="NewModuleRootManager" inherit-compiler-output="true"> | ||
| <exclude-output /> | ||
| <content url="file://$MODULE_DIR$"> | ||
| <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> | ||
| </content> | ||
| <orderEntry type="inheritedJdk" /> | ||
| <orderEntry type="sourceFolder" forTests="false" /> | ||
| </component> | ||
| </module> | ||
|
|
| @@ -0,0 +1,6 @@ | ||
| /** | ||
| * Created by Aydar on 10.04.14. | ||
| */ | ||
| public class Main { | ||
|
|
||
| } |
| @@ -0,0 +1,38 @@ | ||
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <module type="JAVA_MODULE" version="4"> | ||
| <component name="NewModuleRootManager" inherit-compiler-output="true"> | ||
| <exclude-output /> | ||
| <content url="file://$MODULE_DIR$"> | ||
| <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> | ||
| </content> | ||
| <orderEntry type="inheritedJdk" /> | ||
| <orderEntry type="sourceFolder" forTests="false" /> | ||
| <orderEntry type="module-library"> | ||
| <library> | ||
| <CLASSES> | ||
| <root url="jar://$MODULE_DIR$/tests/lib/hamcrest-core-1.3.jar!/" /> | ||
| </CLASSES> | ||
| <JAVADOC /> | ||
| <SOURCES /> | ||
| </library> | ||
| </orderEntry> | ||
| <orderEntry type="module-library"> | ||
| <library> | ||
| <CLASSES> | ||
| <root url="jar://$MODULE_DIR$/tests/lib/junit-4.11.jar!/" /> | ||
| </CLASSES> | ||
| <JAVADOC /> | ||
| <SOURCES /> | ||
| </library> | ||
| </orderEntry> | ||
| <orderEntry type="module-library"> | ||
| <library> | ||
| <CLASSES> | ||
| <root url="jar://$MODULE_DIR$/tests/walk/WalkTest.jar!/" /> | ||
| </CLASSES> | ||
| <JAVADOC /> | ||
| <SOURCES /> | ||
| </library> | ||
| </orderEntry> | ||
| </component> | ||
| </module> |
| @@ -0,0 +1 @@ | ||
| __Test__Walk__/test01_oneEmptyFile/DtuwETjKgGcNSf3TmzLn9eiwU98R47 |
| @@ -0,0 +1 @@ | ||
| 811c9dc5 __Test__Walk__/test01_oneEmptyFile/DtuwETjKgGcNSf3TmzLn9eiwU98R47 |
| @@ -0,0 +1,10 @@ | ||
| __Test__Walk__/test02_tenEmptyFiles/NHGDya5UaqoMwVPWD0O226tIgo7rte | ||
| __Test__Walk__/test02_tenEmptyFiles/LU4kXtbL4J2vucSXzRfwZQKh2Pm2kL | ||
| __Test__Walk__/test02_tenEmptyFiles/jHZ980bW9IIs9bs8aQVU74R3meWRGk | ||
| __Test__Walk__/test02_tenEmptyFiles/dMC23y0Mjut3VsjLw2e6IUS7UaYcew | ||
| __Test__Walk__/test02_tenEmptyFiles/UTbISGX11wqT62Qcbc67u0bBBXM4SO | ||
| __Test__Walk__/test02_tenEmptyFiles/BT5rEalYtor0UXNTBPaSlffHEueR9Y | ||
| __Test__Walk__/test02_tenEmptyFiles/jhpfYNlImkQsxguMpeFVHdWhSjFF5F | ||
| __Test__Walk__/test02_tenEmptyFiles/IaeVxtOBt49XPD4OA7KyKXvcbQUJAf | ||
| __Test__Walk__/test02_tenEmptyFiles/10La7bw87niMu7SRrWZ3GguquE4k98 | ||
| __Test__Walk__/test02_tenEmptyFiles/NYREcymzLSrV1xSOV8qWuZDgJNFIeC |
| @@ -0,0 +1,10 @@ | ||
| 811c9dc5 __Test__Walk__/test02_tenEmptyFiles/NHGDya5UaqoMwVPWD0O226tIgo7rte | ||
| 811c9dc5 __Test__Walk__/test02_tenEmptyFiles/LU4kXtbL4J2vucSXzRfwZQKh2Pm2kL | ||
| 811c9dc5 __Test__Walk__/test02_tenEmptyFiles/jHZ980bW9IIs9bs8aQVU74R3meWRGk | ||
| 811c9dc5 __Test__Walk__/test02_tenEmptyFiles/dMC23y0Mjut3VsjLw2e6IUS7UaYcew | ||
| 811c9dc5 __Test__Walk__/test02_tenEmptyFiles/UTbISGX11wqT62Qcbc67u0bBBXM4SO | ||
| 811c9dc5 __Test__Walk__/test02_tenEmptyFiles/BT5rEalYtor0UXNTBPaSlffHEueR9Y | ||
| 811c9dc5 __Test__Walk__/test02_tenEmptyFiles/jhpfYNlImkQsxguMpeFVHdWhSjFF5F | ||
| 811c9dc5 __Test__Walk__/test02_tenEmptyFiles/IaeVxtOBt49XPD4OA7KyKXvcbQUJAf | ||
| 811c9dc5 __Test__Walk__/test02_tenEmptyFiles/10La7bw87niMu7SRrWZ3GguquE4k98 | ||
| 811c9dc5 __Test__Walk__/test02_tenEmptyFiles/NYREcymzLSrV1xSOV8qWuZDgJNFIeC |
| @@ -0,0 +1,6 @@ | ||
| __Test__Walk__/test03_missingFiles/Ad2Pol949Cs7kDmJETGClu8WuHMqtc | ||
| G8Osk5jugw3Yt3t5iY00mxEQube3IV | ||
| mcJJ8SQlGTrY4pVVikvefIKtj8HDXj | ||
| __Test__Walk__/test03_missingFiles/9S3t8HBgetIwkg87YGLepvIvqIPCd3 | ||
| __Test__Walk__/test03_missingFiles/Fv2eflzmRWXJaD9CMPBDYerZyNj5k0 | ||
| wFmyOLtPo6E0Q3NzKgJJUjYefUAYcj |
| @@ -0,0 +1,6 @@ | ||
| 811c9dc5 __Test__Walk__/test03_missingFiles/Ad2Pol949Cs7kDmJETGClu8WuHMqtc | ||
| 00000000 G8Osk5jugw3Yt3t5iY00mxEQube3IV | ||
| 00000000 mcJJ8SQlGTrY4pVVikvefIKtj8HDXj | ||
| 811c9dc5 __Test__Walk__/test03_missingFiles/9S3t8HBgetIwkg87YGLepvIvqIPCd3 | ||
| 811c9dc5 __Test__Walk__/test03_missingFiles/Fv2eflzmRWXJaD9CMPBDYerZyNj5k0 | ||
| 00000000 wFmyOLtPo6E0Q3NzKgJJUjYefUAYcj |
| @@ -0,0 +1,5 @@ | ||
| __Test__Walk__.. | ||
| __Test__Walk__/test04_errorReading/f0mtiLGeIpDVqSdhqzaGXgi4eP2GBY | ||
| __Test__Walk__/test04_errorReading/VT2T2sCnZWHfyNOlZ5PInm5qv4Mg3z | ||
| __Test__Walk__/test04_errorReading/IGrxsJMMRdr00MhtOc04XAtIX158s6 | ||
| __Test__Walk__@ |
| @@ -0,0 +1,5 @@ | ||
| 00000000 __Test__Walk__.. | ||
| 811c9dc5 __Test__Walk__/test04_errorReading/f0mtiLGeIpDVqSdhqzaGXgi4eP2GBY | ||
| 811c9dc5 __Test__Walk__/test04_errorReading/VT2T2sCnZWHfyNOlZ5PInm5qv4Mg3z | ||
| 811c9dc5 __Test__Walk__/test04_errorReading/IGrxsJMMRdr00MhtOc04XAtIX158s6 | ||
| 00000000 __Test__Walk__@ |
| @@ -0,0 +1,10 @@ | ||
| __Test__Walk__/test05_smallRandomFiles/CfXYejTpH3e6VnyBM0yWmNs5p3erfB | ||
| __Test__Walk__/test05_smallRandomFiles/EDpHqdyid3ko0sUMPqtpaxHafqpZXa | ||
| __Test__Walk__/test05_smallRandomFiles/eWev0vxMKHP6zmIXVo2u5rfnZGkiIU | ||
| __Test__Walk__/test05_smallRandomFiles/yd4Iqok5m1b4wZXqQLCcX78OtXtLMW | ||
| __Test__Walk__/test05_smallRandomFiles/ZQzUrHauB3rccUwo0Uc3mNhCzw59ur | ||
| __Test__Walk__/test05_smallRandomFiles/FtOE7uiIZQhTx3hfxyUSPPew1smOac | ||
| __Test__Walk__/test05_smallRandomFiles/liQCBFXXGwGzC9P3F8emK80RovpY8i | ||
| __Test__Walk__/test05_smallRandomFiles/6bgevT5CK6Qg13tbOB9aVpS7azTvxv | ||
| __Test__Walk__/test05_smallRandomFiles/HFRSiHuPecmpTy1Jrb9TdMZQ4oNOPP | ||
| __Test__Walk__/test05_smallRandomFiles/K6omc0vJ35u1VAxNxpU1QLZjep7YpP |
| @@ -0,0 +1,10 @@ | ||
| 77333e78 __Test__Walk__/test05_smallRandomFiles/CfXYejTpH3e6VnyBM0yWmNs5p3erfB | ||
| 3a454cce __Test__Walk__/test05_smallRandomFiles/EDpHqdyid3ko0sUMPqtpaxHafqpZXa | ||
| 46faa1b1 __Test__Walk__/test05_smallRandomFiles/eWev0vxMKHP6zmIXVo2u5rfnZGkiIU | ||
| d3197579 __Test__Walk__/test05_smallRandomFiles/yd4Iqok5m1b4wZXqQLCcX78OtXtLMW | ||
| 9adb1b07 __Test__Walk__/test05_smallRandomFiles/ZQzUrHauB3rccUwo0Uc3mNhCzw59ur | ||
| d675db63 __Test__Walk__/test05_smallRandomFiles/FtOE7uiIZQhTx3hfxyUSPPew1smOac | ||
| db078d82 __Test__Walk__/test05_smallRandomFiles/liQCBFXXGwGzC9P3F8emK80RovpY8i | ||
| b4c97113 __Test__Walk__/test05_smallRandomFiles/6bgevT5CK6Qg13tbOB9aVpS7azTvxv | ||
| 358201cc __Test__Walk__/test05_smallRandomFiles/HFRSiHuPecmpTy1Jrb9TdMZQ4oNOPP | ||
| 3633b31d __Test__Walk__/test05_smallRandomFiles/K6omc0vJ35u1VAxNxpU1QLZjep7YpP |
| @@ -0,0 +1,2 @@ | ||
| u��.��^V��YV��m | ||
| �庤��6��͵ �2u���"���=2b���V���{�D��R!K7�1���8.� |
| @@ -0,0 +1 @@ | ||
| �� |
| @@ -0,0 +1,2 @@ | ||
| �4�e�>v ?�$W� | ||
| ,�DC?W8{�>��iϞ������ |
| @@ -0,0 +1 @@ | ||
| ���� |
| @@ -0,0 +1,2 @@ | ||
| � ��ϴ��L� | ||
| �5!q|�&Mi�d��l�5���t ����^�YQ |
| @@ -0,0 +1 @@ | ||
| �m��I� |
| @@ -0,0 +1 @@ | ||
| �ϗ^�W�v�U�;X�K��J�Lc���t�d���z��e}�!D�vi��R |
| @@ -0,0 +1 @@ | ||
| ��v�_z�s�_��S�앁���w�I�g�W�/-�:K�<|@+��4?.}sL=�iڥ�# | ||
| @@ -0,0 +1 @@ | ||
| �V��5��8�����N�l�"< |
| @@ -0,0 +1,10 @@ | ||
| __Test__Walk__/test06_mediumRandomFiles/Qf67kvTeJN9yZ3DUDAXfSZv1KE4tOO | ||
| __Test__Walk__/test06_mediumRandomFiles/VDGi1aHMJGgrb57lTNSgEUyvLBOtBH | ||
| __Test__Walk__/test06_mediumRandomFiles/uBChOKOPkCxFMhTxogolxcsjo8SQRg | ||
| __Test__Walk__/test06_mediumRandomFiles/3jP4Ejhvy0KPnapm0ZN9w4acyt2kpL | ||
| __Test__Walk__/test06_mediumRandomFiles/YdSNcdtYPVwHanxsToSI8bRdImG2PR | ||
| __Test__Walk__/test06_mediumRandomFiles/Ao7SK6eYQ40eiqJvOboqxCmeGShMnx | ||
| __Test__Walk__/test06_mediumRandomFiles/HBQ8SfFhFfhnmbso46H37PDpqn92Xo | ||
| __Test__Walk__/test06_mediumRandomFiles/LIeRmjebqaQ5aSF3lxaHkMg7g7EEd0 | ||
| __Test__Walk__/test06_mediumRandomFiles/PZVGqB9zxjVfXkSlYWX1C5RkNzZNjW | ||
| __Test__Walk__/test06_mediumRandomFiles/JMWnWNjSqhHYTDE7VkCNEm020XCx3N |
| @@ -0,0 +1,10 @@ | ||
| 4b7662ad __Test__Walk__/test06_mediumRandomFiles/Qf67kvTeJN9yZ3DUDAXfSZv1KE4tOO | ||
| 76f1b529 __Test__Walk__/test06_mediumRandomFiles/VDGi1aHMJGgrb57lTNSgEUyvLBOtBH | ||
| 43049002 __Test__Walk__/test06_mediumRandomFiles/uBChOKOPkCxFMhTxogolxcsjo8SQRg | ||
| d4e83422 __Test__Walk__/test06_mediumRandomFiles/3jP4Ejhvy0KPnapm0ZN9w4acyt2kpL | ||
| 7f685cd2 __Test__Walk__/test06_mediumRandomFiles/YdSNcdtYPVwHanxsToSI8bRdImG2PR | ||
| 17c88e9e __Test__Walk__/test06_mediumRandomFiles/Ao7SK6eYQ40eiqJvOboqxCmeGShMnx | ||
| 5dffc49f __Test__Walk__/test06_mediumRandomFiles/HBQ8SfFhFfhnmbso46H37PDpqn92Xo | ||
| 91b72998 __Test__Walk__/test06_mediumRandomFiles/LIeRmjebqaQ5aSF3lxaHkMg7g7EEd0 | ||
| 142c6e88 __Test__Walk__/test06_mediumRandomFiles/PZVGqB9zxjVfXkSlYWX1C5RkNzZNjW | ||
| d29dff77 __Test__Walk__/test06_mediumRandomFiles/JMWnWNjSqhHYTDE7VkCNEm020XCx3N |
| @@ -0,0 +1 @@ | ||
| &�ԛz���W��l��k��UF����c*���|�G�C�U��.a�� |
| @@ -0,0 +1,2 @@ | ||
| Jm���� | ||
| �V��"�Rr�0s'[W��mvV� !�nQ�ٱ�{�_�ʐow��?^ePH�" | ||
| @@ -0,0 +1 @@ | ||
| �r�_�A���q5����?�0� |
| @@ -0,0 +1 @@ | ||
| �ޫ�� 4�3l��9��z�%B�|)��7HT��t!g���WS{�/�#�e | ||
| @@ -0,0 +1 @@ | ||
| K&%�~��B� |
| @@ -0,0 +1 @@ | ||
| �}o��H�K�/� "tU�'�1��|��7��|b1��x��5ψ�yM�1���0�A��Y8ކ1C�C}�:����ږ�j�"�B��r�5<xQ#�"#� |
| @@ -0,0 +1 @@ | ||
| ج�4`iE"�$��d�kS���!�����r���Zס�U��ʒ|����q�=�W\6�͒t(��*�`���J-:�n%� |
| @@ -0,0 +1 @@ | ||
| _�i�6�W�:��t�[���ܑnhm\�<oxԣ, |
| @@ -0,0 +1 @@ | ||
| "k��]�m�jD��ju������devߑ �]�)�6�g�RVr��Z3Y'ʥwA�a��P� �t���`��������!0���)� |
| @@ -0,0 +1 @@ | ||
| �� |
| @@ -0,0 +1 @@ | ||
| �\�TS���h��h?�6!u��_�&k��(����� |
| @@ -0,0 +1 @@ | ||
| ��v�YCF�=�2>^��m7��N\�f�%Κ=���y�f軼�]�� ��Q�uO���|�� |
| @@ -0,0 +1,2 @@ | ||
| �I | ||
| �.Z¬?�q�w��5�#)7���M�?��Z��Yq��d | ||
| @@ -0,0 +1 @@ | ||
| �e:3��#�X8 |
| @@ -0,0 +1 @@ | ||
| \��fp�t���83�R�|+x9e��! |
| @@ -0,0 +1 @@ | ||
| l�ᗓj�aq�H�� |
| @@ -0,0 +1 @@ | ||
| ���/��u'�*�N��;�j�-��X0�MEܜ c��0�y�1��(�j��[���C�ȳ|3=%�o���%�����R� �� |
| @@ -0,0 +1,10 @@ | ||
| __Test__Walk__/test07_largeRandomFiles/G5xVXwooqsDkbtjVZiuGLYjzwvHUxr | ||
| __Test__Walk__/test07_largeRandomFiles/cNunZXoYkSTBJTOXEv5EnoyRGjpe5o | ||
| __Test__Walk__/test07_largeRandomFiles/1VeyRlnjsaEIQPcy17xQqnE9teVHUo | ||
| __Test__Walk__/test07_largeRandomFiles/Uixtrir8PXNwcLCSfESAIL4dXdmrm7 | ||
| __Test__Walk__/test07_largeRandomFiles/k498owAgmYtImssK5uVG1JDoJ0Srqb | ||
| __Test__Walk__/test07_largeRandomFiles/nM1xm8lYGdTreosVCuludB3mbvJ3WY | ||
| __Test__Walk__/test07_largeRandomFiles/xhYfTWOELPyjm1kryt4W6hhw9pxnjZ | ||
| __Test__Walk__/test07_largeRandomFiles/ScZoFUJfhST8w9Bj8liP4A5M6jxS7K | ||
| __Test__Walk__/test07_largeRandomFiles/rDzvy6cLeSXOcBWb5x1LMP60IiZlGE | ||
| __Test__Walk__/test07_largeRandomFiles/fjdvHvZct8KC0rDJAbcREaR04bB4O2 |
| @@ -0,0 +1,10 @@ | ||
| 4005bca1 __Test__Walk__/test07_largeRandomFiles/G5xVXwooqsDkbtjVZiuGLYjzwvHUxr | ||
| a39e5e1b __Test__Walk__/test07_largeRandomFiles/cNunZXoYkSTBJTOXEv5EnoyRGjpe5o | ||
| f54a4e72 __Test__Walk__/test07_largeRandomFiles/1VeyRlnjsaEIQPcy17xQqnE9teVHUo | ||
| 6ad70d9e __Test__Walk__/test07_largeRandomFiles/Uixtrir8PXNwcLCSfESAIL4dXdmrm7 | ||
| 0c819428 __Test__Walk__/test07_largeRandomFiles/k498owAgmYtImssK5uVG1JDoJ0Srqb | ||
| 720d36c2 __Test__Walk__/test07_largeRandomFiles/nM1xm8lYGdTreosVCuludB3mbvJ3WY | ||
| d8457439 __Test__Walk__/test07_largeRandomFiles/xhYfTWOELPyjm1kryt4W6hhw9pxnjZ | ||
| b159c09c __Test__Walk__/test07_largeRandomFiles/ScZoFUJfhST8w9Bj8liP4A5M6jxS7K | ||
| c176085c __Test__Walk__/test07_largeRandomFiles/rDzvy6cLeSXOcBWb5x1LMP60IiZlGE | ||
| cbc45051 __Test__Walk__/test07_largeRandomFiles/fjdvHvZct8KC0rDJAbcREaR04bB4O2 |
| @@ -0,0 +1,10 @@ | ||
| __Test__Walk__/test08_chineseSupport/你序中支程支中問中國國支你持中支持支國序問國國的序你持問序你 | ||
| __Test__Walk__/test08_chineseSupport/持國支你請支程程持問程持國程你支你請國支持持你序問請問問國序 | ||
| __Test__Walk__/test08_chineseSupport/中支序中的支持你持問持程的支的程國支序國你請支程的的問請國請 | ||
| __Test__Walk__/test08_chineseSupport/中持中支持支持你序支支請程序持程問你序請你你問的中國國序中中 | ||
| __Test__Walk__/test08_chineseSupport/序請國請中你中請中支序國支國問請你持程程的問問序請問序問程中 | ||
| __Test__Walk__/test08_chineseSupport/你的序請你支程持國支中序問支支支的請序中中中國問請問序請中的 | ||
| __Test__Walk__/test08_chineseSupport/你中持持請問你序問支程請問請問你的你程問程持中的的請持持支你 | ||
| __Test__Walk__/test08_chineseSupport/的你序序請持問的支程請請序序中序的序問你國序中請的中支你支的 | ||
| __Test__Walk__/test08_chineseSupport/支的支支持的請問支序國國國國問問序支持支問中你序序國持請請持 | ||
| __Test__Walk__/test08_chineseSupport/支序持持程請請請程支國中程序程序支程支程請序國你持你持問問支 |
| @@ -0,0 +1,10 @@ | ||
| a6c810c4 __Test__Walk__/test08_chineseSupport/你序中支程支中問中國國支你持中支持支國序問國國的序你持問序你 | ||
| 70ab2329 __Test__Walk__/test08_chineseSupport/持國支你請支程程持問程持國程你支你請國支持持你序問請問問國序 | ||
| cb820c4f __Test__Walk__/test08_chineseSupport/中支序中的支持你持問持程的支的程國支序國你請支程的的問請國請 | ||
| 2a6af7ea __Test__Walk__/test08_chineseSupport/中持中支持支持你序支支請程序持程問你序請你你問的中國國序中中 | ||
| 1d0db4ad __Test__Walk__/test08_chineseSupport/序請國請中你中請中支序國支國問請你持程程的問問序請問序問程中 | ||
| b73e61ac __Test__Walk__/test08_chineseSupport/你的序請你支程持國支中序問支支支的請序中中中國問請問序請中的 | ||
| 8fd210ca __Test__Walk__/test08_chineseSupport/你中持持請問你序問支程請問請問你的你程問程持中的的請持持支你 | ||
| 04245dfe __Test__Walk__/test08_chineseSupport/的你序序請持問的支程請請序序中序的序問你國序中請的中支你支的 | ||
| 0470febd __Test__Walk__/test08_chineseSupport/支的支支持的請問支序國國國國問問序支持支問中你序序國持請請持 | ||
| 4cfe09de __Test__Walk__/test08_chineseSupport/支序持持程請請請程支國中程序程序支程支程請序國你持你持問問支 |
| @@ -0,0 +1 @@ | ||
| 2 |
| @@ -0,0 +1 @@ | ||
| ?�M�He�Sw�4tg��m[��q��o�7װ־|�<��ҋt |
| @@ -0,0 +1 @@ | ||
| �>���� |
| @@ -0,0 +1 @@ | ||
| s�!�՝DgOV<�!m@PT�<����� |
| @@ -0,0 +1 @@ | ||
| �E&��~�w�w�x |
| @@ -0,0 +1 @@ | ||
|
|
| @@ -0,0 +1 @@ | ||
|
|
| @@ -0,0 +1 @@ | ||
| � |
| @@ -0,0 +1,2 @@ | ||
| �i��x� JZ/F�2cr�u��n�TIz8�7��r | ||
| ��bs |
| @@ -0,0 +1 @@ | ||
| �r |
| @@ -0,0 +1 @@ | ||
| ҿh�A�jw�&2�X�"�n�7[��E�S��),ܥ�ŗ�A�}��xI*ql | ||
| @@ -0,0 +1,2 @@ | ||
| � | ||
| V3a��%�v |
| @@ -0,0 +1 @@ | ||
| y�H��w��S�.9�AaMF�c�̑� |
| @@ -0,0 +1 @@ | ||
| @@ -0,0 +1 @@ | ||
| __Test__Walk__/test09_recursion |
| @@ -0,0 +1,29 @@ | ||
| 7beb468d __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/UgzSPRT6ZxedhzCmgCVrZw7TMfjPQy/4OFDzZF1bcnfZvxkP1HVPEAawLrihv/8VDksne3tQyGe9sM4HhrrRf8EDTsNe | ||
| 991cb0d4 __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/UgzSPRT6ZxedhzCmgCVrZw7TMfjPQy/4OFDzZF1bcnfZvxkP1HVPEAawLrihv/H3jn9RTPKhFCkTMZ6WTGmPMdiqVGqD | ||
| a5aa41c6 __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/UgzSPRT6ZxedhzCmgCVrZw7TMfjPQy/MvATlZIhEc5gKJTOOrl5nmi13tnfgP | ||
| 177c70c9 __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Vz7d9mgJsE71LWOttAcStBezgRhNz8/FH3UJgyfw5Xr3pHA7NshUACcLZJpiY | ||
| d575ca57 __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Vz7d9mgJsE71LWOttAcStBezgRhNz8/7VPFHOe7amPEcMSsm9m6nFbDGyUCY8 | ||
| 82dc6fca __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Vz7d9mgJsE71LWOttAcStBezgRhNz8/UNNQ1RV0Llh97x0bCIo9XKh3hHIiYE/R7kjrnYjjcH2zGVNb2718Z6lQ1AcQp | ||
| 0ab24583 __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Vz7d9mgJsE71LWOttAcStBezgRhNz8/UNNQ1RV0Llh97x0bCIo9XKh3hHIiYE/SDE6jSO7Jevsfgc5z7lpWCcZCSnYgT | ||
| 18cc54e2 __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Vz7d9mgJsE71LWOttAcStBezgRhNz8/UNNQ1RV0Llh97x0bCIo9XKh3hHIiYE/eNbGYKZ6pCfD0Tc9xwBVAT1wFhqv1Z | ||
| 3dcd5fcd __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Vz7d9mgJsE71LWOttAcStBezgRhNz8/urQqPpJBlTTMZH5gB7w0u1ljLx77pj/lNOGuTYvM5BmhsIvjnFdI86jUvCSaZ | ||
| 93dbfd10 __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Vz7d9mgJsE71LWOttAcStBezgRhNz8/urQqPpJBlTTMZH5gB7w0u1ljLx77pj/GWBdMKx77Bh3RlQzBX0eiu70nzDb7n | ||
| bd4424af __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Vz7d9mgJsE71LWOttAcStBezgRhNz8/urQqPpJBlTTMZH5gB7w0u1ljLx77pj/bx5YrM3URaPBY7iA5DGkGnawupXk2s/cMrIbdWdEx8j9xYM62eEB2TJdCwM1c | ||
| f4435fb1 __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Vz7d9mgJsE71LWOttAcStBezgRhNz8/urQqPpJBlTTMZH5gB7w0u1ljLx77pj/bx5YrM3URaPBY7iA5DGkGnawupXk2s/AXpBvIDNjOGGLiOzsPJh5rzspnREB3 | ||
| 50d11694 __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Vz7d9mgJsE71LWOttAcStBezgRhNz8/urQqPpJBlTTMZH5gB7w0u1ljLx77pj/bx5YrM3URaPBY7iA5DGkGnawupXk2s/RWtooh77T2TWmYQehs5p9WVhbFgEGN | ||
| 2aba986c __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Vz7d9mgJsE71LWOttAcStBezgRhNz8/urQqPpJBlTTMZH5gB7w0u1ljLx77pj/Ft8z3tkp4q1BxxH20ZNP2YTM1NlC2D/TbmfKaMxvKyRThRUnxVvoBaQM1nQTs | ||
| c580b18a __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Vz7d9mgJsE71LWOttAcStBezgRhNz8/urQqPpJBlTTMZH5gB7w0u1ljLx77pj/Ft8z3tkp4q1BxxH20ZNP2YTM1NlC2D/vnoKiKe5A6j3qDF6jNLRoxOPF8ELr8 | ||
| 7aba3b17 __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Vz7d9mgJsE71LWOttAcStBezgRhNz8/urQqPpJBlTTMZH5gB7w0u1ljLx77pj/Ft8z3tkp4q1BxxH20ZNP2YTM1NlC2D/cHvZMdWL84GD6vSnnlP7FddEzD5FsR | ||
| 9830fe35 __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Vz7d9mgJsE71LWOttAcStBezgRhNz8/urQqPpJBlTTMZH5gB7w0u1ljLx77pj/0XMq7l3I5rS0Yg7sRpJP17RS7oz4hA/nxsdmNpnJWmfevvx6zBqVH3fmerowN | ||
| 065b2ac4 __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Em3PACLtxzkt9d1fU4iuqB80XGaUJw/FXP9w7Jnsb0zuBnSXiSZNI6ogOnfm2/augEWGeRRORtvTKGSdPyCqEd76CpnL | ||
| ff24621f __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Em3PACLtxzkt9d1fU4iuqB80XGaUJw/FXP9w7Jnsb0zuBnSXiSZNI6ogOnfm2/oU0MjTzRG8Nj5kLCFfkKdYIR9zavTK/tyrd3aOFUWksvjUcFt8UdNmKLYWsJm | ||
| ba766311 __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Em3PACLtxzkt9d1fU4iuqB80XGaUJw/FXP9w7Jnsb0zuBnSXiSZNI6ogOnfm2/oU0MjTzRG8Nj5kLCFfkKdYIR9zavTK/C8XaKhPlJyoFBREx8LjAUYBblihncI | ||
| 087fcce6 __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Em3PACLtxzkt9d1fU4iuqB80XGaUJw/FXP9w7Jnsb0zuBnSXiSZNI6ogOnfm2/oU0MjTzRG8Nj5kLCFfkKdYIR9zavTK/UlOB3yiFZdSuCqKdia2dkViBGJybC2 | ||
| 8ffd71a3 __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Em3PACLtxzkt9d1fU4iuqB80XGaUJw/FXP9w7Jnsb0zuBnSXiSZNI6ogOnfm2/69WBHOpea8QwPGCck23o5JqEIOU8pD | ||
| dc1a66b6 __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Em3PACLtxzkt9d1fU4iuqB80XGaUJw/FXP9w7Jnsb0zuBnSXiSZNI6ogOnfm2/flJrd3qbRbBkJVCbOn1EkU9IFC6Q9m | ||
| 84bbfaf2 __Test__Walk__/test09_recursion/TlqSrkrwuXbg0adbuB1ZHzTwYW1veQ/Em3PACLtxzkt9d1fU4iuqB80XGaUJw/5hbDQR5oHESwJwzJDBUlk9CuselAuh | ||
| 060c98c4 __Test__Walk__/test09_recursion/zTAp7mzvbkx7sXulVDjEgm0yMtOPYG | ||
| cf50abb0 __Test__Walk__/test09_recursion/8CSVQDX3zuFw9b76qInYVCjNydyyfx | ||
| cdd6180c __Test__Walk__/test09_recursion/HO16uYaoAi6LHtgtqQWoR4Z2gjzOEi/0PlEiDIQdhzMwrgfNurxhT9MAJBeDH | ||
| b35e1517 __Test__Walk__/test09_recursion/HO16uYaoAi6LHtgtqQWoR4Z2gjzOEi/RC8RfGP52NwQJFxnobOYfjfX7DDXVV/LwloeKz752vqq9rYLBPJXW4hzjQqh8 | ||
| 00b66f11 __Test__Walk__/test09_recursion/VTLTjIVw4LEsZydld09iGQNi7yGoQr |
| @@ -0,0 +1 @@ | ||
| ��߸������{���4V�^Y�<��ԭ�R�yPK� 1k�p�I�<�۹�Y |
| @@ -0,0 +1,2 @@ | ||
| �2?�4��ayR�3�y��,�@��L���3D��3ca������4\�Z�J� ��]���C��N� | ||
| �L`�ۭ.�������t |
| @@ -0,0 +1 @@ | ||
| K1A���#(�H�oq�Qr�Zdq$x钙yDT���_Ф��X���T� |
| @@ -0,0 +1 @@ | ||
| �$���յ�2�GS�cD�ʪo��[ |
| @@ -0,0 +1 @@ | ||
| ,�۲�_H{gμ*p� |
| @@ -0,0 +1,2 @@ | ||
| 77��.�0�w��r1(ur���6��\�Al���?�w��ˏ�Q$�I�$�Ɯ� | ||
| "��|�v�Ǐ�>q-5�CV�� | ||
| @@ -0,0 +1 @@ | ||
| ����Ў� �̠�S|�@�Z�l�ض�C��k |
| @@ -0,0 +1 @@ | ||
| 9�K\E |
| @@ -0,0 +1 @@ | ||
| Jz�#�R�;H��K<wz�+�� |
| @@ -0,0 +1,3 @@ | ||
| � | ||
| Z$X��_+ ��^g���LQ��bx���_V��]�3��9Bxb���1h'�~*� | ||
| D�蒀��E�&�7��.��� |
| @@ -0,0 +1,2 @@ | ||
|
|
||
| Q��~��.��$���>��tUFپҨ��Qᵳ)�cI�Ea �E |
| @@ -0,0 +1 @@ | ||
| >�Q����#�D#`���Ԝ���S���PW�]�)�*Rsk��� �s��) |
| @@ -0,0 +1 @@ | ||
| �L���VF��Ć7vf�T�z�� |
| @@ -0,0 +1 @@ | ||
| λE�pۚ���0�rK�B���ʥ찮��&��D�T=I���>>��o��%� |
| @@ -0,0 +1 @@ | ||
| U�D����&�Gf<t ������Z~��3��W��1Ucn�cfj�-�K��-��J�P�"y��6�=6n�wO�Tm��mQ |
| @@ -0,0 +1,2 @@ | ||
| y#��A�ҫ��ai�@��N5��t��nn���G��ZR��ޘ9�� | ||
| Rȣwn-�P�̯�I݂��$�R�#"�țM[I��YqU���� | ||
| @@ -0,0 +1 @@ | ||
| !��5��m��aD,�F��8w���_�:� p�r�c��;��!�.�ݨ��|W | ||
| @@ -0,0 +1,3 @@ | ||
| Ä7 | ||
| a� | ||
| N]U��B��nA�n'*� �� |
| @@ -0,0 +1 @@ | ||
| ����y�k��S�7�yA�ꬾ�3V�X���j��F��R�X�W�)��~aԔE�I�]�M | ||
| @@ -0,0 +1 @@ | ||
| vb��d<�Uj#��nG�5S�����:W%�?���F��ઔ��v7.�EZ�8A*֤lظ^ò_�d |
| @@ -0,0 +1 @@ | ||
| n�0f4�4mȒ�� #��Ѹ��u�ܬ�?P>��B�j���OQ��$���M�)�d|�OM�[� ѝX*��@J��U�� |
| @@ -0,0 +1 @@ | ||
| C��d/��5ӣk�_��M�i��~��}�bYl�H�Ig�N$�A����!^E�ɂ |
| @@ -0,0 +1 @@ | ||
| �X�/3�z�_�h�Yu�Xy]� |