コード例 #1
0
        public void CheckTypedToUntypedAndViceVersaTransformations()
        {
            // arrange

            var concept1 = ConceptCreationHelper.CreateConcept();
            var concept2 = ConceptCreationHelper.CreateConcept();

            var resultStatementsTyped = new IsStatement[]
            {
                new IsStatement(null, concept1, concept2),
                new IsStatement(null, concept2, concept1),
            };

            var resultStatementsUntyped = resultStatementsTyped.OfType <IStatement>().ToArray();

            var text = new UnstructuredContainer();

            var explanationStatements = new IStatement[]
            {
                new HasPartStatement(null, concept1, concept2),
                new HasPartStatement(null, concept2, concept1),
            };

            var typedAnswer   = new StatementsAnswer <IsStatement>(resultStatementsTyped, text, new Explanation(explanationStatements));
            var untypedAnswer = new StatementsAnswer(resultStatementsUntyped, text, new Explanation(explanationStatements));

            // act
            var genericAnswer  = typedAnswer.MakeGeneric();
            var explicitAnswer = untypedAnswer.MakeExplicit <IsStatement>();

            // assert
            Assert.IsTrue(typedAnswer.Result.SequenceEqual(explicitAnswer.Result));
            Assert.IsTrue(typedAnswer.Explanation.Statements.SequenceEqual(explicitAnswer.Explanation.Statements));

            Assert.IsTrue(untypedAnswer.Result.SequenceEqual(genericAnswer.Result));
            Assert.IsTrue(untypedAnswer.Explanation.Statements.SequenceEqual(genericAnswer.Explanation.Statements));
        }