// Path: src/main/java/rogeriogentil/data/structures/chapter06/MatchUtil.java
// public class MatchUtil {
// 
//    public static boolean isMatched(String expression) {
//       final String opening = "{[(";
//       final String closing = "}])";
//       
//       Stack<Character> buffer = new LinkedStack<>();
//       
//       for (char c : expression.toCharArray()) {
//          if (opening.indexOf(c) != -1) {
//             buffer.push(c);
//          } else if (closing.indexOf(c) != -1) {
//             if (buffer.isEmpty()) {
//                return false;
//             }
//             
//             if (closing.indexOf(c) != opening.indexOf(buffer.pop())) {
//                return false;
//             }
//          }
//       }
//       
//       return buffer.isEmpty();
//    }
//    
// }


import rogeriogentil.data.structures.chapter06.MatchUtil;
import org.junit.Test;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
package rogeriogentil.data.structures.chapter06;



/**
 *
 * @author rogerio
 */
public class MatchUtilTest {

   @Test
// Path: src/main/java/rogeriogentil/data/structures/chapter06/MatchUtil.java
// public class MatchUtil {
// 
//    public static boolean isMatched(String expression) {
//       final String opening = "{[(";
//       final String closing = "}])";
//       
//       Stack<Character> buffer = new LinkedStack<>();
//       
//       for (char c : expression.toCharArray()) {
//          if (opening.indexOf(c) != -1) {
//             buffer.push(c);
//          } else if (closing.indexOf(c) != -1) {
//             if (buffer.isEmpty()) {
//                return false;
//             }
//             
//             if (closing.indexOf(c) != opening.indexOf(buffer.pop())) {
//                return false;
//             }
//          }
//       }
//       
//       return buffer.isEmpty();
//    }
//    
// }


// Path: src/test/java/rogeriogentil/data/structures/chapter06/MatchUtilTest.java
import rogeriogentil.data.structures.chapter06.MatchUtil;
import org.junit.Test;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;

package rogeriogentil.data.structures.chapter06;



/**
 *
 * @author rogerio
 */
public class MatchUtilTest {

   @Test
   public void deveValidarQuandoNaoHaCaracteresDeAberturaOuFechamento() {