Inheritance: Org.BouncyCastle.Asn1.Asn1Encodable
		public override void PerformTest()
        {
            QCStatement mv = new QCStatement(Rfc3739QCObjectIdentifiers.IdQcsPkixQCSyntaxV1);

            CheckConstruction(mv, Rfc3739QCObjectIdentifiers.IdQcsPkixQCSyntaxV1, null);

			Asn1Encodable info = new SemanticsInformation(new DerObjectIdentifier("1.2"));

            mv = new QCStatement(Rfc3739QCObjectIdentifiers.IdQcsPkixQCSyntaxV1, info);

            CheckConstruction(mv, Rfc3739QCObjectIdentifiers.IdQcsPkixQCSyntaxV1, info);

            mv = QCStatement.GetInstance(null);

			if (mv != null)
            {
                Fail("null GetInstance() failed.");
            }

			try
            {
                QCStatement.GetInstance(new object());

				Fail("GetInstance() failed to detect bad object.");
            }
            catch (ArgumentException)
            {
                // expected
            }
        }
		private void CheckConstruction(
            QCStatement mv,
            DerObjectIdentifier statementId,
            Asn1Encodable statementInfo)
        {
            CheckStatement(mv, statementId, statementInfo);

			mv = QCStatement.GetInstance(mv);

			CheckStatement(mv, statementId, statementInfo);

			Asn1Sequence seq = (Asn1Sequence) Asn1Object.FromByteArray(
				mv.ToAsn1Object().GetEncoded());

			mv = QCStatement.GetInstance(seq);

			CheckStatement(mv, statementId, statementInfo);
        }
		private void CheckStatement(
            QCStatement         qcs,
            DerObjectIdentifier statementId,
            Asn1Encodable       statementInfo)
        {
            if (!qcs.StatementId.Equals(statementId))
            {
                Fail("statementIds don't match.");
            }

			if (statementInfo != null)
            {
                if (!qcs.StatementInfo.Equals(statementInfo))
                {
                    Fail("statementInfos don't match.");
                }
            }
            else if (qcs.StatementInfo != null)
            {
                Fail("statementInfo found when none expected.");
            }
        }