WordSizedNumber( string representedType, int size, WordSizedNumberFlags flags, object value) { RepresentedType = representedType; Size = size; Flags = flags; Value = value; }
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()); } }
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; } } }