コード例 #1
0
        public void GetAnswersTest()
        {
            var uians = new UIAnswer("First answer", true, 1);
            var ans   = new Answer("First answer", true)
            {
                Id = 1
            };
            var uiq = new UIQuestion("First question", 1);
            var q   = new Question("First question")
            {
                Id = 1, Answers = new List <Answer> {
                    ans
                }
            };


            var mockObj = TestsMethodsTests.Create(new List <Question> {
                q
            });
            var mockObjA = TestsMethodsTests.Create(new List <Answer> {
                ans
            });

            var mockContext = new Mock <Test2DBContainer>();

            mockContext.Setup(m => m.Questions).Returns(mockObj.Object);
            mockContext.Setup(m => m.Answers).Returns(mockObjA.Object);

            var service = new Service(mockContext.Object);

            var list = service.GetAnswers(uiq);

            Assert.IsTrue(list.Count == 1);
            Assert.AreEqual(1, list[0].Id);
        }
コード例 #2
0
        public void EditAnswer()
        {
            var uiq = new UIQuestion("First question", 1);
            var q   = new Question("First question")
            {
                Id = 1
            };
            var uians = new UIAnswer("First answer", true, 1);
            var ans   = new Answer("First answer", true)
            {
                Id = 1
            };

            var mockObj = TestsMethodsTests.Create(new List <Question> {
                q
            });
            var mockObjA = TestsMethodsTests.Create(new List <Answer> {
                ans
            });

            var mockContext = new Mock <Test2DBContainer>();

            mockContext.Setup(m => m.Questions).Returns(mockObj.Object);
            mockContext.Setup(m => m.Answers).Returns(mockObjA.Object);

            var service = new Service(mockContext.Object);

            service.SaveAnswer(uians, uiq);

            mockContext.Verify(m => m.SaveChanges(), Times.Once);
        }
コード例 #3
0
ファイル: PureFact.cs プロジェクト: toncho11/KorraAI
 public PureFact(string p_Name, PureFactType p_type, string p_Question, PureFactResponseFunction pf, UIAnswer p_UI)
 {
     Name         = p_Name;
     Type         = p_type;
     question     = p_Question;
     UI           = p_UI;
     ResponseFunc = pf;
     SetCategory(p_type);
 }
コード例 #4
0
ファイル: PureFact.cs プロジェクト: toncho11/KorraAI
 public PureFact(string p_Name, PureFactType p_type, PureFactQuestionFunction p_question, string[] p_AllPossibleAnswers, UIAnswer p_UI)
 {
     Name               = p_Name;
     Type               = p_type;
     QuestionFunc       = p_question;
     AllPossibleAnswers = p_AllPossibleAnswers;
     UI           = p_UI;
     ResponseFunc = null;
     SetCategory(p_type);
 }
コード例 #5
0
ファイル: InteractionItems.cs プロジェクト: toncho11/KorraAI
        public Joke(string name, string text, bool isDelayed, bool isPureFact, UIAnswer pureFactUI)
        {
            Init();

            Name       = name;
            Text       = text;
            IsUsed     = false;
            IsPureFact = isPureFact;
            PureFactUI = pureFactUI;
        }
コード例 #6
0
ファイル: PureFact.cs プロジェクト: toncho11/KorraAI
 public PureFact(string p_Name, PureFactType p_type, string p_Question, string[] p_AllPossibleAnswers, PureFactResponseFunction p_response, UIAnswer p_UI, ContentType type)
 {
     Name               = p_Name;
     Type               = p_type;
     question           = p_Question;
     AllPossibleAnswers = p_AllPossibleAnswers;
     UI           = p_UI;
     ContentType  = type;
     ResponseFunc = p_response;
     SetCategory(p_type);
 }
コード例 #7
0
ファイル: PureFact.cs プロジェクト: toncho11/KorraAI
 /// <summary>
 /// Mainly for questions with 2 or 3 possible answers
 /// </summary>
 /// <param name="p_Name"></param>
 /// <param name="p_IsFactAboutTheBot"></param>
 /// <param name="p_Question"></param>
 /// <param name="p_AllPossibleAnswers"></param>
 /// <param name="p_Acknowledgement"></param>
 /// <param name="p_UI"></param>
 public PureFact(string p_Name, PureFactType p_type, string p_Question, string[] p_AllPossibleAnswers, string p_Acknowledgement, UIAnswer p_UI)
 {
     Name               = p_Name;
     Type               = p_type;
     question           = p_Question;
     AllPossibleAnswers = p_AllPossibleAnswers;
     Acknowledgement    = p_Acknowledgement;
     UI           = p_UI;
     ResponseFunc = null;
     SetCategory(p_type);
 }
コード例 #8
0
ファイル: PureFact.cs プロジェクト: toncho11/KorraAI
 public PureFact(string p_Name, PureFactType p_type, string p_Question, string p_Value, string p_Acknowledgement, UIAnswer p_UI)
 {
     Name            = p_Name;
     Type            = p_type;
     question        = p_Question;
     Value           = p_Value;
     Acknowledgement = p_Acknowledgement;
     UI           = p_UI;
     ResponseFunc = null;
     SetCategory(p_type);
 }
コード例 #9
0
ファイル: PureFact.cs プロジェクト: toncho11/KorraAI
        public PureFact(string p_Name, PureFactType p_type, string p_Question, string[] p_AllPossibleAnswers,
                        string p_Acknowledgement, UIAnswer p_UI, string p_StatementOnPositiveResponse,
                        string p_StatementOnNegativeResponse, ContentType type)
        {
            Name               = p_Name;
            Type               = p_type;
            question           = p_Question;
            AllPossibleAnswers = p_AllPossibleAnswers;
            Acknowledgement    = p_Acknowledgement;
            UI          = p_UI;
            ContentType = type;

            statementOnPositiveResponse = p_StatementOnPositiveResponse;
            statementOnNegativeResponse = p_StatementOnNegativeResponse;

            ResponseFunc = null;
            SetCategory(p_type);
        }
コード例 #10
0
        public UncertainFact(string p_Name, bool p_IsFactAboutTheBot, string p_Question, VarRef <FiniteDist <bool> > p_ProbVariable, string[] p_AllPossibleAnswers, double[] p_ProbabilitiesForEachPossibleAnswer, UIAnswer p_UI)
        {
            Name = p_Name;
            IsFactAboutTheBot = p_IsFactAboutTheBot;
            Question          = p_Question;
            ProbVariable      = p_ProbVariable;
            //NumberOfPossibleAnswers = p_NumberOfPossibleAnswers;
            AllPossibleAnswers = p_AllPossibleAnswers;
            probabilitiesForEachPossibleAnswer = p_ProbabilitiesForEachPossibleAnswer;
            UI = p_UI;

            if (AllPossibleAnswers.Length != NumberOfPossibleAnswers)
            {
                throw new Exception("Mismatch number of answers for: " + Name);
            }
            if (ProbabilitiesForEachPossibleAnswer.Length != NumberOfPossibleAnswers)
            {
                throw new Exception("Mismatch number of answers for: " + Name);
            }
        }
コード例 #11
0
        public void DeleteAnswerTest()
        {
            var uians = new UIAnswer("First test", true, 1);
            var ans   = new Answer("First test", true)
            {
                Id = 1
            };

            var mockObj = TestsMethodsTests.Create(new List <Answer> {
                ans
            });

            var mockContext = new Mock <Test2DBContainer>();

            mockContext.Setup(m => m.Answers).Returns(mockObj.Object);

            var service = new Service(mockContext.Object);

            service.DeleteAnswer(uians);

            mockObj.Verify(x => x.Remove(It.IsAny <Answer>()), Times.Once);
            mockContext.Verify(m => m.SaveChanges(), Times.Once);
        }
コード例 #12
0
        public UncertainFact(string p_Name, bool p_IsFactAboutTheBot, string p_Question, VarRef <FiniteDist <bool> > p_ProbVariable, string[] p_AllPossibleAnswers, UIAnswer p_UI, double p_ProbChange)
        {
            Name = p_Name;
            IsFactAboutTheBot = p_IsFactAboutTheBot;
            Question          = p_Question;
            ProbVariable      = p_ProbVariable;
            //NumberOfPossibleAnswers = p_NumberOfPossibleAnswers;
            AllPossibleAnswers = p_AllPossibleAnswers;
            probabilitiesForEachPossibleAnswer = new double[NumberOfPossibleAnswers];
            UI         = p_UI;
            ProbChange = p_ProbChange;

            if (AllPossibleAnswers.Length != NumberOfPossibleAnswers)
            {
                throw new Exception("Mismatch number of answers for: " + Name);
            }
            if (ProbabilitiesForEachPossibleAnswer.Length != NumberOfPossibleAnswers)
            {
                throw new Exception("Mismatch number of answers for: " + Name);
            }

            //p_ProbChange has been provided without a list of probabilities, so they must be calculated the first time
            RecalculateProbForEachAnswer();
        }
コード例 #13
0
		private Button CreateButton(UIAnswer answer, int index)
		{
			Button button = new Button
			                	{
			                		AutoSize = true,
			                		Margin = new Padding(6),
			                		Name = "MessageButton" + index,
			                		Size = new Size(75, 23),
			                		TabIndex = index,
			                		Text = answer.ToString(),
			                		UseVisualStyleBackColor = true,
			                		Tag = answer,
			                	};
			button.Click += ButtonClick;
			return button;
		}
コード例 #14
0
		public UipAnswer AskQuestion(UipQuestion question)
		{
			var message = new UIMessage
			{
				Content = question.Content,
				MainInstruction = question.MainInstruction
			};
			switch (question.QuestionType)
			{
				case UipQuestionType.Failure:
					message.MessageType = UIMessageType.Failure;
					break;
				case UipQuestionType.Forbidden:
					message.MessageType = UIMessageType.Forbidden;
					break;
				case UipQuestionType.Warning:
					message.MessageType = UIMessageType.Warning;
					break;
				case UipQuestionType.Question:
					message.MessageType = UIMessageType.Question;
					break;
				case UipQuestionType.Success:
					message.MessageType = UIMessageType.Success;
					break;
				case UipQuestionType.Information:
					message.MessageType = UIMessageType.Information;
					break;
				case UipQuestionType.Unauthorized:
					message.MessageType = UIMessageType.Unauthorized;
					break;
			}
			foreach (var possibleAnswer in question.PossibleAnswers)
			{
				UIAnswer answer;
				switch (possibleAnswer.AnswerType)
				{
					case UipAnswerType.No:
						answer = new UIAnswer(UIAnswerType.No);
						break;
					case UipAnswerType.Ignore:
						answer = new UIAnswer(UIAnswerType.Ignore);
						break;
					case UipAnswerType.Retry:
						answer = new UIAnswer(UIAnswerType.Retry);
						break;
					case UipAnswerType.Abort:
						answer = new UIAnswer(UIAnswerType.Abort);
						break;
					case UipAnswerType.Cancel:
						answer = new UIAnswer(UIAnswerType.Cancel);
						break;
					case UipAnswerType.OK:
						answer = new UIAnswer(UIAnswerType.OK);
						break;
					case UipAnswerType.Yes:
						answer = new UIAnswer(UIAnswerType.Yes);
						break;
					default:
						answer = new UIAnswer(possibleAnswer.ToString());
						break;
				}
				if (possibleAnswer.Callback != null)
				{
					answer.Callback = new CallbackHelper(question, possibleAnswer).Callback;
				}
				message.PossibleAnswers.Add(answer);
			}
			_messageBox.Show(message);
			return question.SelectedAnswer;
		}