Esempio n. 1
0
 WordSizedNumber(
     string representedType,
     int size,
     WordSizedNumberFlags flags,
     object value)
 {
     RepresentedType = representedType;
     Size            = size;
     Flags           = flags;
     Value           = value;
 }
Esempio n. 2
0
        void AssertWordSizedNumber <T> (T [] values, WordSizedNumberFlags expectedFlags)
        {
            manager = new RepresentationManager();  // [SetUp] doesn't know we're looping
            //#if MAC || IOS
            //manager.AddProvider (new Unified.UnifiedRepresentationProvider ());
            //#endif

            for (int i = 0; i < values.Length; i++)
            {
                var reps = (RepresentedObject)manager.Prepare(values [i]);
                reps.Count.ShouldEqual(2);
                var word = reps [0].ShouldBeInstanceOf <WordSizedNumber> ();
                word.Flags.ShouldEqual(expectedFlags);
                word.Value.ToString().ShouldEqual(values [i].ToString());
            }
        }
Esempio n. 3
0
        public WordSizedNumber(object value, WordSizedNumberFlags flags, ulong storage)
        {
            RepresentedType = value.GetType().ToSerializableName();
            Flags           = flags;

            if (flags.HasFlag(WordSizedNumberFlags.Real))
            {
                Value = BitConverter.Int64BitsToDouble((long)storage);
                if (Size == 4)
                {
                    Value = (float)(double)Value;
                }
            }
            else if (flags.HasFlag(WordSizedNumberFlags.Signed))
            {
                if (Size == 4)
                {
                    Value = (int)(long)storage;
                }
                else
                {
                    Value = (long)storage;
                }
            }
            else
            {
                if (Size == 4)
                {
                    Value = (uint)storage;
                }
                else
                {
                    Value = storage;
                }
            }
        }