/*
* Copyright (c) 2013, the Dart project authors.
*
* Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.eclipse.org/legal/epl-v10.html
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.dart.tools.debug.core.sourcemaps;
import junit.framework.TestCase;
import static org.junit.Assert.assertArrayEquals;
public class VlqDecoderTest extends TestCase {
public void testBase64VLQSelectedSignedValues1() {
for (int i = -(64 * 64 - 1); i < (64 * 64 - 1); i++) {
testValue(i);
}
}
public void testBase64VLQSelectedSignedValues2() {
int base = 1;
for (int i = 0; i < 30; i++) {
testValue(base - 1);
testValue(base);
base *= 2;
}
base = -1;
for (int i = 0; i < 30; i++) {
testValue(base - 1);
testValue(base);
base *= 2;
}
}
public void testBase64VLQSelectedValues1() {
for (int i = 0; i < 63; i++) {
testValue(i);
}
}
public void testBase64VLQSelectedValues2() {
int base = 1;
for (int i = 0; i < 30; i++) {
testValue(base - 1);
testValue(base);
base *= 2;
}
}
public void testDecode1() throws Exception {
int[] actual = VlqDecoder.decode("AAgBC");
assertArrayEquals(new int[] {0, 0, 16, 1}, actual);
}
private void testValue(int value) {
try {
String result = VlqDecoder.encode(new int[] {value});
int[] resultValue = VlqDecoder.decode(result);
assertEquals(value, resultValue[0]);
} catch (Exception e) {
throw new RuntimeException("failed for value " + value, e);
}
}
}