// Path: nlu-core/src/main/java/com/conversationkit/model/IConversationIntent.java
// public interface IConversationIntent {
//     /**
//      * @return unique ID for the intent.
//      */
//     public String getIntentId();
//     /**
//      * Slots are parameters collected from the user's input while detecting intent. As an example, a
//      * a slot might be a color. So in the user input, "Press the red button" the intent
//      * might be <code>PRESS_BUTTON</code> with a slot of <code>color</code> set to <code>red</code>.
//      * @return map of slot keys to slot values
//      */
//     public Map<String,Object> getSlots();
//     
//     public boolean getAllRequiredSlotsFilled();
// }


import com.conversationkit.model.IConversationIntent;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.junit.Test;
import static org.junit.Assert.*;
package com.conversationkit.nlp;


/**
 *
 * @author pdtyreus
 */
public class RegexIntentDetectorTest {

    @Test
    public void testDetectIntent() {
        System.out.println("detectIntent");
        String sessionId = "0";
        
        Map<String,String> intentMap = new HashMap();
        intentMap.put("DUCK", "duck");
        intentMap.put("GOOSE", "goose");
        intentMap.put("YES", RegexIntentDetector.YES);
        intentMap.put("NO", RegexIntentDetector.NO);
        
        RegexIntentDetector instance = new RegexIntentDetector(intentMap);
// Path: nlu-core/src/main/java/com/conversationkit/model/IConversationIntent.java
// public interface IConversationIntent {
//     /**
//      * @return unique ID for the intent.
//      */
//     public String getIntentId();
//     /**
//      * Slots are parameters collected from the user's input while detecting intent. As an example, a
//      * a slot might be a color. So in the user input, "Press the red button" the intent
//      * might be <code>PRESS_BUTTON</code> with a slot of <code>color</code> set to <code>red</code>.
//      * @return map of slot keys to slot values
//      */
//     public Map<String,Object> getSlots();
//     
//     public boolean getAllRequiredSlotsFilled();
// }


// Path: nlu-core/src/test/java/com/conversationkit/nlp/RegexIntentDetectorTest.java
import com.conversationkit.model.IConversationIntent;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.junit.Test;
import static org.junit.Assert.*;

package com.conversationkit.nlp;


/**
 *
 * @author pdtyreus
 */
public class RegexIntentDetectorTest {

    @Test
    public void testDetectIntent() {
        System.out.println("detectIntent");
        String sessionId = "0";
        
        Map<String,String> intentMap = new HashMap();
        intentMap.put("DUCK", "duck");
        intentMap.put("GOOSE", "goose");
        intentMap.put("YES", RegexIntentDetector.YES);
        intentMap.put("NO", RegexIntentDetector.NO);
        
        RegexIntentDetector instance = new RegexIntentDetector(intentMap);
        Optional<IConversationIntent> result = instance.detectIntent("yes, please", "en_US", sessionId);