Пример #1
0
        public void Indexer()
        {
            var apexs    = new PlineApexs();
            var atsvZero = new ApexAtsv();

            for (int i = 0; i < apexs.Length; i++)
            {
                apexs[i].Should().Be(atsvZero);
            }
        }
Пример #2
0
        public void Foreach()
        {
            var apexs    = new PlineApexs();
            var atsvZero = new ApexAtsv();

            foreach (var apex in apexs)
            {
                apex.Should().Be(atsvZero);
            }
        }
Пример #3
0
        public void DataTest()
        {
            var data = BinarySupplier.GetPlineData();

            // Length(Apexの使用数)が予約数より小さいこと
            var plineSize = Marshal.SizeOf(typeof(PlineApexs));

            data.Length.Should().BeGreaterThan(0);
            data.Length.Should().BeLessOrEqualTo(plineSize);

            // 固定小数点が正数
            data.FixedValue.Should().BeGreaterThan(0);

            // buffer(Apexのbyte[])が仕様通り(予約通り)であること
            var apexSize  = Marshal.SizeOf(typeof(ApexAtsv));
            var apexCount = new PlineApexs().Length;

            data.Buffer.Length.Should().Be(apexSize * apexCount);
        }
Пример #4
0
        public readonly PlineApexs Apexs;   // Apexの最大定義数

        public ProgramLine(int length, int fixedNumber, Span <byte> span)
        {
            Length      = length;
            FixedNumber = fixedNumber;
            Apexs       = Unsafe.As <byte, PlineApexs>(ref span.GetPinnableReference());
        }