Inheritance: Org.BouncyCastle.Asn1.Asn1Encodable
		public override void PerformTest()
        {
            MonetaryValue mv = new MonetaryValue(new Iso4217CurrencyCode(CurrencyCode), TestAmount, ZeroExponent);

			CheckValues(mv, TestAmount, ZeroExponent);

			mv = MonetaryValue.GetInstance(mv);

			CheckValues(mv, TestAmount, ZeroExponent);

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

			mv = MonetaryValue.GetInstance(seq);

			CheckValues(mv, TestAmount, ZeroExponent);

			mv = MonetaryValue.GetInstance(null);

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

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

				Fail("GetInstance() failed to detect bad object.");
            }
            catch (ArgumentException)
            {
                // expected
            }
        }
		private void CheckValues(
            MonetaryValue mv,
            int           amount,
            int           exponent)
        {
            if (mv.Amount.IntValue != amount)
            {
                Fail("amounts don't match.");
            }

            if (mv.Exponent.IntValue != exponent)
            {
                Fail("exponents don't match.");
            }

            Iso4217CurrencyCode cc = mv.Currency;

            if (!cc.Alphabetic.Equals(CurrencyCode))
            {
                Fail("currency code wrong");
            }
        }