public void AddChar_TEST()
 {
     DecInt dec = new DecInt("0");
     dec.AddChar('2');
     Assert.AreEqual("2", dec.StoredInput);
     Assert.AreEqual(2, dec.StoredNumber);
     dec.AddChar('5');
     Assert.AreEqual("25", dec.StoredInput);
     Assert.AreEqual(25, dec.StoredNumber);
     dec.DeleteChar();
     dec.AddChar('5');
     Assert.AreEqual("25", dec.StoredInput);
     Assert.AreEqual(25, dec.StoredNumber);
     dec.AddChar('6');
     Assert.AreEqual("25", dec.StoredInput);
     Assert.AreEqual(25, dec.StoredNumber);
     dec.StoredInput = "12";
     dec.AddChar('8');
     Assert.AreEqual("128", dec.StoredInput);
     Assert.AreEqual(128, dec.StoredNumber);
     dec.StoredNumber = 6;
     dec.AddChar('8');
     Assert.AreEqual("68", dec.StoredInput);
     Assert.AreEqual(68, dec.StoredNumber);
 }
        //this method is for negative integers only, not fractions or positive numbers
        public string decToBinNeg(long input, int size)
        {
            //decToBinNeg
            const int MATHEMATICALLY_NECESSARY_CORRECTION = 1;

            if (input == -1) //special case for when input is -1
            {//if

                return new string(Constants.ONE, size);
            }//if
            else
            {//else
                //make input positive
                //mathmaticallyNecessaryCorrection = -1
                uint inputAdjusted = (uint)Math.Abs(input) - MATHEMATICALLY_NECESSARY_CORRECTION;

                DecInt dec = new DecInt(inputAdjusted, size);
                ConverterToBin binConvert = new ConverterToBin();
                BinInt unsignedBin = binConvert.Convert(dec);

                //convert the positive number to binary
                //arguement size affects whether you'll get 0010 vs 00000010
                String inputAsPosBin = unsignedBin.StoredInput;

                string toBeReturned = NegateBin(inputAsPosBin);

                return toBeReturned;

            }//else
        }
        public BinInt Convert(DecInt input)
        {
            long toBeConverted = input.StoredNumber;
            int bitNumber = input.allowedNumberOfBits;
            string result = FromDecIntPos(toBeConverted, bitNumber);
            BinInt output = new BinInt(result, bitNumber);

            return output;
        }
        public DecInt Convert(BinInt input)
        {
            int size = input.allowedNumberOfBits;
            int convertFromBase = 2;
            string toBeConverted = input.StoredInput;
            uint result = ToDecFromIntPos(toBeConverted, convertFromBase);
            DecInt output = new DecInt(result,size);

            return output;
        }
 public void DeleteChar_TEST()
 {
     DecInt dec = new DecInt("0");
     dec.DeleteChar();
     Assert.AreEqual("0", dec.StoredInput);
     Assert.AreEqual(0, dec.StoredNumber);
     dec.StoredInput = "5";
     dec.DeleteChar();
     Assert.AreEqual("0", dec.StoredInput);
     Assert.AreEqual(0, dec.StoredNumber);
     dec.StoredNumber = 255;
     dec.DeleteChar();
     Assert.AreEqual("25", dec.StoredInput);
     Assert.AreEqual(25, dec.StoredNumber);
 }
 public void ClearInput_TEST()
 {
     DecInt dec = new DecInt("0");
     dec.ClearInput();
     Assert.AreEqual("0", dec.StoredInput);
     Assert.AreEqual(0, dec.StoredNumber);
     dec.StoredInput = "5";
     dec.ClearInput();
     Assert.AreEqual("0", dec.StoredInput);
     Assert.AreEqual(0, dec.StoredNumber);
     dec.StoredNumber = 255;
     dec.ClearInput();
     Assert.AreEqual("0", dec.StoredInput);
     Assert.AreEqual(0, dec.StoredNumber);
 }
 public void ConvertFromBin()
 {
     dec = converter.Convert(bin);
     Assert.AreEqual("0", dec.StoredInput);
     bin.StoredInput = "00000001";
     dec = converter.Convert(bin);
     Assert.AreEqual("1", dec.StoredInput);
     bin.StoredInput = "00000010";
     dec = converter.Convert(bin);
     Assert.AreEqual("2", dec.StoredInput);
     bin.StoredInput = "00000011";
     dec = converter.Convert(bin);
     Assert.AreEqual("3", dec.StoredInput);
     bin.StoredInput = "00000100";
     dec = converter.Convert(bin);
     Assert.AreEqual("4", dec.StoredInput);
     bin.StoredInput = "00001000";
     dec = converter.Convert(bin);
     Assert.AreEqual("8", dec.StoredInput);
     bin.StoredInput = "00010000";
     dec = converter.Convert(bin);
     Assert.AreEqual("16", dec.StoredInput);
     bin.StoredInput = "00011111";
     dec = converter.Convert(bin);
     Assert.AreEqual("31", dec.StoredInput);
     bin.StoredInput = "00100000";
     dec = converter.Convert(bin);
     Assert.AreEqual("32", dec.StoredInput);
     bin.StoredInput = "10101010";
     dec = converter.Convert(bin);
     Assert.AreEqual("170", dec.StoredInput);
     bin.StoredInput = "00101001";
     dec = converter.Convert(bin);
     Assert.AreEqual("41", dec.StoredInput);
     bin.StoredInput = "01000000";
     dec = converter.Convert(bin);
     Assert.AreEqual("64", dec.StoredInput);
     bin.StoredInput = "10000000";
     dec = converter.Convert(bin);
     Assert.AreEqual("128", dec.StoredInput);
     bin.StoredInput = "11111111";
     dec = converter.Convert(bin);
     Assert.AreEqual("255", dec.StoredInput);
 }
        public SignedBinInt Convert(SignedDecInt signedDecInteger)
        {
            uint inputNumber = signedDecInteger.GetUnsignedNumber();
            int size = signedDecInteger.allowedNumberOfBits;
            SignedBinInt signedBin;

            if (inputNumber >= 0)
            {
                DecInt dec = new DecInt(inputNumber,size);
                ConverterToBin binConvert = new ConverterToBin();
                BinInt bin = binConvert.Convert(dec);
                signedBin = new SignedBinInt(Constants.POSITIVE, bin.StoredInput, bin.allowedNumberOfBits);
                return signedBin;
            }
            else
            {

                string negBinRepresentation = this.decToBinNeg(inputNumber, size);
                signedBin = new SignedBinInt(Constants.NEGATIVE, negBinRepresentation, size);
            }

            return signedBin;
        }
 public void Initialization_TEST()
 {
     DecInt dec = new DecInt("0");
     Assert.AreEqual(8, dec.allowedNumberOfBits);
     Assert.AreEqual("0", dec.StoredInput);
     Assert.AreEqual(0, dec.StoredNumber);
     dec = new DecInt(0);
     Assert.AreEqual("0", dec.StoredInput);
     Assert.AreEqual(0, dec.StoredNumber);
     dec = new DecInt(5);
     Assert.AreEqual("5", dec.StoredInput);
     Assert.AreEqual(5, dec.StoredNumber);
     dec = new DecInt("A");
     Assert.AreEqual("0", dec.StoredInput);
     Assert.AreEqual(0, dec.StoredNumber);
     dec = new DecInt("Abc");
     Assert.AreEqual("0", dec.StoredInput);
     Assert.AreEqual(0, dec.StoredNumber);
     dec = new DecInt("255");
     Assert.AreEqual("255", dec.StoredInput);
     Assert.AreEqual(255, dec.StoredNumber);
     dec = new DecInt(255);
     Assert.AreEqual("255", dec.StoredInput);
     Assert.AreEqual(255, dec.StoredNumber);
     dec = new DecInt("-2");
     Assert.AreEqual("2", dec.StoredInput);
     Assert.AreEqual(2, dec.StoredNumber);
     dec = new DecInt(256);
     Assert.AreEqual("0", dec.StoredInput);
     Assert.AreEqual(0, dec.StoredNumber);
     dec = new DecInt("256");
     Assert.AreEqual("0", dec.StoredInput);
     Assert.AreEqual(0, dec.StoredNumber);
     dec = new DecInt(5,4);
     Assert.AreEqual(4, dec.allowedNumberOfBits);
 }
 public void SetStoredInput_TEST()
 {
     DecInt dec = new DecInt("0");
     dec.StoredInput = "5";
     Assert.AreEqual("5", dec.StoredInput);
     Assert.AreEqual(5, dec.StoredNumber);
     dec.StoredInput = "256";
     Assert.AreEqual("5", dec.StoredInput);
     Assert.AreEqual(5, dec.StoredNumber);
     dec.StoredInput = "AAA";
     Assert.AreEqual("5", dec.StoredInput);
     Assert.AreEqual(5, dec.StoredNumber);
     dec.StoredNumber = 0;
     Assert.AreEqual("0", dec.StoredInput);
     Assert.AreEqual(0, dec.StoredNumber);
     dec.StoredInput = "-2";
     Assert.AreEqual("2", dec.StoredInput);
     Assert.AreEqual(2, dec.StoredNumber);
     dec.StoredInput = "255";
     Assert.AreEqual("255", dec.StoredInput);
     Assert.AreEqual(255, dec.StoredNumber);
     dec.StoredNumber = 0;
     Assert.AreEqual("0", dec.StoredInput);
     Assert.AreEqual(0, dec.StoredNumber);
     dec.StoredNumber = 255;
     Assert.AreEqual("255", dec.StoredInput);
     Assert.AreEqual(255, dec.StoredNumber);
 }
 public void SetAllowedNumberOfBits()
 {
     DecInt dec = new DecInt("0");
     dec.StoredNumber = 128;
     dec.allowedNumberOfBits = 4;
     Assert.AreEqual(4, dec.allowedNumberOfBits);
     Assert.AreEqual("0", dec.StoredInput);
     Assert.AreEqual(0, dec.StoredNumber);
     dec.allowedNumberOfBits = 8;
     Assert.AreEqual(8, dec.allowedNumberOfBits);
     dec.allowedNumberOfBits = -4;
     Assert.AreEqual(8, dec.allowedNumberOfBits);
     dec.allowedNumberOfBits = 1024;
     Assert.AreEqual(1024, dec.allowedNumberOfBits);
 }
 public void SetUp()
 {
     converter = new ConverterToBin();
     dec = new DecInt("");
 }