001package daikon.test; 002 003import static org.junit.Assert.assertEquals; 004 005import daikon.tools.jtb.AnnotateVisitor; 006import org.junit.Test; 007 008/** Tests that Annotate respects tabs. */ 009public final class TestAnnotate { 010 011 @Test 012 public void testGetTabbedIndex() { 013 014 String[] tabbed = 015 new String[] { 016 "private int[]\telems;", 017 "\tprivate\tint\tnumberOfElements\t;", 018 "\t\tprivate\t\tint\t\tmax;", 019 " \tpublic \tuniqueBoundedStack() \t{", 020 " \t \tnumberOfElements\t= 0;", 021 "\tmax = 2;\t\t", 022 "\telems\t=\tnew int[max]\t;", 023 "\tpublic void push(int k) {", 024 "\t int index;", 025 "\t for (index = 0; index<numberOfElements; index++) {", 026 " if (k==elems[index]) {" 027 }; 028 029 String[] untabbed = 030 new String[] { 031 "private int[] elems;", 032 " private int numberOfElements ;", 033 " private int max;", 034 " public uniqueBoundedStack() {", 035 " numberOfElements = 0;", 036 " max = 2;", 037 " elems = new int[max] ;", 038 " public void push(int k) {", 039 " int index;", 040 " for (index = 0; index<numberOfElements; index++) {", 041 " if (k==elems[index]) {" 042 }; 043 044 for (int i = 0; i < tabbed.length; i++) { 045 046 String tabbedString = tabbed[i]; 047 String untabbedString = untabbed[i]; 048 for (int j = 0; j < untabbedString.length(); j++) { 049 char untabbedChar = untabbedString.charAt(j); 050 if (untabbedChar != ' ') { 051 char tabbedChar = tabbedString.charAt(AnnotateVisitor.getTabbedIndex(j, tabbedString)); 052 assertEquals(untabbedChar, tabbedChar); 053 } 054 } 055 } 056 } 057}