のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

mstest TEST_CLASS 継承 inherit

mstestで共通の関数をまとめたい。
継承がうまくできないな。

CppUnitTestFramework自体は、継承をサポートしていないようだ。

マクロ自体は、以下のようなので、多重継承できるみたい。

///////////////////////////////////////////////////////////////////////////////////////////
// Macro to define your test class. 
// Note that you can only define your test class at namespace scope,
// otherwise the compiler will raise an error.
#define TEST_CLASS(className) \

ONLY_USED_AT_NAMESPACE_SCOPE class 
className : public ::Microsoft::VisualStudio::
CppUnitTestFramework::TestClass<className>
parentClass.cpp

TEST_CLASS(ParentClass)
{
public:
    ParentClass();
    virtual ~ParentClass();
};
#include "parentClass.cpp"

TEST_CLASS(MyTestClass), public ParentClass
{
};

こうすると、VisualStudioがクラスとして認識する。
includeしないと、クラスとして認識してくれない。

stackoverflow.com

Inheritance in MS unit test class

Visual Studioの単体テストで、時間のかかるテストをスキップする方法

実行するのに時間がかかるので、
無効にしたいテストを以下のようにすると、
スキップしてくれる。

f:id:none53:20180808121808p:plain

#if 0で隠してしまうと、テストがあることがわからなくなってしまう。

BEGIN_TEST_METHOD_ATTRIBUTE(時間がかかるテストの名前)
TEST_METHOD_ATTRIBUTE(L"Ignore", L"true")
END_TEST_METHOD_ATTRIBUTE()

TEST_METHOD(時間がかかるテストの名前)
{
    // code
}

L##

   #define TEST_METHOD_CATEGORY(methodName, category)          \
        BEGIN_TEST_METHOD_ATTRIBUTE(methodName)                 \
            TEST_METHOD_ATTRIBUTE(L"TestCategory", L##category)  \
        END_TEST_METHOD_ATTRIBUTE()                             \
        TEST_METHOD(methodName)

Ignoreのみに、限定すると

   #define TEST_METHOD_IGNORE(methodName, category)          \
        BEGIN_TEST_METHOD_ATTRIBUTE(methodName)                 \
            TEST_METHOD_ATTRIBUTE(L"Ignore", L##category)  \
        END_TEST_METHOD_ATTRIBUTE()                             \
        TEST_METHOD(methodName)
TEST_METHOD_IGNORE(test_name, "true")

stackoverflow.com

www.ademiller.com

truetype F2Dot14 変換表

A 下位2Byteが、F2Dot14 A / 2^14
-32768 F8000 -2.000000 ****
-32767 F8001 -1.999939
-32766 F8002 -1.999878
-16386 FBFFE -1.000122
-16385 FBFFF -1.000061
-16384 FC000 -1.000000 ****
-16383 FC001 -0.999939
-16382 FC002 -0.999878
-2 FFFFE -0.000122
-1 FFFFF -0.000061
0 00000 0.000000 ****
1 00001 0.000061
2 00002 0.000122
16382 03FFE 0.999878
16383 03FFF 0.999939
16384 04000 1.000000 ****
16385 04001 1.000061
16386 04002 1.000122
32765 07FFD 1.999817
32766 07FFE 1.999878
32767 07FFF 1.999939

F2Dot14 - Google ドライブ

excel dec2hex 負数のとき、桁数を制限する方法(FFFFをカットする)

dec2hexで負数を表示すると、桁数制限しているのに、符号拡張部分のFFFFが表示されてしまう。
この、FFFFをカットして表示する方法

例:A2=-32768

=DEC2HEX(A2,5)
FFFF8000
=DEC2HEX(BITAND(A2+2^16,2^16-1),5)
8000
=DEC2HEX(BITAND(A2+2^20,2^20-1),5)
F8000
これは、NUM?になった。
=DEC2HEX(BITAND(A2+2^24,2^24-1),5)

superuser.com

truetype fixed 16.16

Data type Description
shortFrac 16-bit signed fraction
Fixed 16.16-bit signed fixed-point number
F2Dot14 16-bit signed fixed number with the low 14 bits representing fraction.
F2Dot14
1.999 0x7FFF 32767
-2.0 0x8000 -32768
1.0 0x4000 16384
-1.0 0xC000 -16384

The TrueType Font File

2^14 = 2^4 *2^10 = 16*1024 = 16384

1/16384 = 0.00006103515625
16383/16384 = 0.99993896484375
0.000061 * 16384 = 0.999424
0.999939 *16384= 16383.000576
Decimal Value Hex Value Integer Fraction
1.999939 0x7fff 1 16383/16384
1.75 0x7000 1 12288/16384
0.000061 0x0001 0 1/16384
0.0 0x0000 0 0/16384
-0.000061 0xffff -1 16383/16384
-2.0 0x8000 -2 0/16384
0b01
0b00
0b11
0b10
1.999939 0x7fff 1+ 16383/16384 = 16384/16384 + 16383/16384 = 32767/16384
= =
0.000000 0x0000 0+ 00000/16384 = 00000/16384 + 00000/16384 = 00000/16384
-0.000061 0xffff -1+ 16383/16384 = -16384/16384 + 16383/16384 = -00001/16384
-0.000122 0xfffe -1+ 16382/16384 = -16384/16384 + 16382/16384 = -00002/16384
-0.000183 0xfffd -1+ 16381/16384 = -16384/16384 + 16381/16384 = -00003/16384
-0.000244 0xfffc -1+ 16380/16384 = -16384/16384 + 16380/16384 = -00004/16384
= =
-0.999939 0xc001 -1 + 00001/16384 = -16384/16384 + 00001/16384 = -16383/16384
-1.000061 0xc000 -1 + 00000/16384 = -16384/16384 + 00000/16384 = -16384/16384
0xbfff -2 + 16384/16384 = -32768/16384 + 16384/16384= -16385/16384
0xbffe -2 + 16384/16384 = -32768/16384 + 16383/16384= -16386/16384
0xbffd -2 + 16384/16384 = -32768/16384 + 16382/16384= -16387/16384
0xbffc -2 + 16384/16384 = -32768/16384 + 16381/16384= -16388/16384
0xbffb -2 + 16384/16384 = -32768/16384 + 16380/16384= -16389/16384
= =
-1.999939 0x8001 -2 + 00001/16384 = -32768/16384 + 00001/16384 = -32767/16384
-2.0 0x8000 -2 + 00000/16384 = -32768/16384 + 00000/16384 = -32768/16384


docs.microsoft.com

stackoverflow.com

micro sd card sandisk 128GB

microSDXC 128GB SanDisk
サンディスク UHS-1
超高速U1 FULL HD
アプリ最適化 Rated A1対応
専用SDアダプ付 [並行輸入品]

seqは、specどおりなのかな。
f:id:none53:20180803081910p:plain