Browse Source

分支8完成题目,做了单元测试

master
linyongji 4 years ago
parent
commit
464bc34bac
10 changed files with 71 additions and 1 deletions
  1. +2
    -0
      .gitignore
  2. BIN
      Alogrithm/.vs/Alogrithm/v16/.suo
  3. +3
    -0
      Alogrithm/Alogrithm/Alogrithm.vcxproj
  4. +9
    -0
      Alogrithm/Alogrithm/Alogrithm.vcxproj.filters
  5. +21
    -0
      Alogrithm/Alogrithm/config/8_HammingWeight.ini
  6. +4
    -0
      Alogrithm/Alogrithm/include/8_HammingWeight.h
  7. +12
    -0
      Alogrithm/Alogrithm/src/8_HammingWeight.cpp
  8. +18
    -0
      Alogrithm/UnitTest/UnitTest.cpp
  9. +1
    -1
      Alogrithm/UnitTest/UnitTest.vcxproj
  10. +1
    -0
      Alogrithm/UnitTest/pch.h

+ 2
- 0
.gitignore View File

@@ -108,3 +108,5 @@ Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/8d72cbe9b24557ef/7_MAXDEPTH.ipch
Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/d67b185b0905d0e0/7_MAXDEPTH.ipch
Alogrithm/.vs/Alogrithm/v16/TestStore/3/001.testlog
Alogrithm/Alogrithm/Debug/7_MaxDepth.obj
Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/5507929c4351e38d/8_HAMMINGWEIGHT.ipch
Alogrithm/Alogrithm/Debug/8_HammingWeight.obj

BIN
Alogrithm/.vs/Alogrithm/v16/.suo View File


+ 3
- 0
Alogrithm/Alogrithm/Alogrithm.vcxproj View File

@@ -147,6 +147,7 @@
<ClCompile Include="src\5_MinDepth.cpp" />
<ClCompile Include="src\6_ContainsDuplicate.cpp" />
<ClCompile Include="src\7_MaxDepth.cpp" />
<ClCompile Include="src\8_HammingWeight.cpp" />
<ClCompile Include="src\main.cpp" />
</ItemGroup>
<ItemGroup>
@@ -157,6 +158,7 @@
<ClInclude Include="include\5_MinDepth.h" />
<ClInclude Include="include\6_ContainsDuplicate.h" />
<ClInclude Include="include\7_MaxDepth.h" />
<ClInclude Include="include\8_HammingWeight.h" />
</ItemGroup>
<ItemGroup>
<None Include="config\1_ContainsNearbyDuplicate.ini" />
@@ -166,6 +168,7 @@
<None Include="config\5_MinDepth.ini" />
<None Include="config\6_ContainsDuplicate.ini" />
<None Include="config\7_MaxDepth.ini" />
<None Include="config\8_HammingWeight.ini" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">


+ 9
- 0
Alogrithm/Alogrithm/Alogrithm.vcxproj.filters View File

@@ -48,6 +48,9 @@
<ClCompile Include="src\7_MaxDepth.cpp">
<Filter>源文件\src</Filter>
</ClCompile>
<ClCompile Include="src\8_HammingWeight.cpp">
<Filter>源文件\src</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="include\2_ExcelSheetColumnTitle.h">
@@ -71,6 +74,9 @@
<ClInclude Include="include\7_MaxDepth.h">
<Filter>头文件\include</Filter>
</ClInclude>
<ClInclude Include="include\8_HammingWeight.h">
<Filter>头文件\include</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="config\3_bool IsUgly.ini">
@@ -94,5 +100,8 @@
<None Include="config\7_MaxDepth.ini">
<Filter>资源文件\config</Filter>
</None>
<None Include="config\8_HammingWeight.ini">
<Filter>资源文件\config</Filter>
</None>
</ItemGroup>
</Project>

+ 21
- 0
Alogrithm/Alogrithm/config/8_HammingWeight.ini View File

@@ -0,0 +1,21 @@
[TEST1]
input=3
output=2
[TEST2]
input=0
output=0
[TEST3]
input=1
output=1
[TEST4]
input=4
output=1
[TEST5]
input=214748368
output=13
[TEST6]
input=214748400
output=14
[TEST7]
input=4294967295‬
output=31

+ 4
- 0
Alogrithm/Alogrithm/include/8_HammingWeight.h View File

@@ -0,0 +1,4 @@
#pragma once

#include <iostream>
int HammingWeight(uint32_t n);

+ 12
- 0
Alogrithm/Alogrithm/src/8_HammingWeight.cpp View File

@@ -0,0 +1,12 @@
#include"../include/8_HammingWeight.h"
//8.定义一个count,记录1的个数,把入参和1与操作,如果为1,count加1;如果为0,count加0
//把入参右移一位,循环上面的操作,直到n=0时结束。
int HammingWeight(uint32_t n)
{
int n_Count = 0;
while (n) {
n_Count += n & 1;
n >>= 1;
}
return n_Count;
}

+ 18
- 0
Alogrithm/UnitTest/UnitTest.cpp View File

@@ -9,6 +9,9 @@ using namespace Microsoft::VisualStudio::CppUnitTestFramework;
#define FileName_5 "../Alogrithm/config/5_MinDepth.ini"
#define FileName_6 "../Alogrithm/config/6_ContainsDuplicate.ini"
#define FileName_7 "../Alogrithm/config/7_MaxDepth.ini"
#define FileName_8 "../Alogrithm/config/8_HammingWeight.ini"



namespace UnitTest
{
@@ -132,4 +135,19 @@ namespace UnitTest
}
}
};
TEST_CLASS(UnitTest_8)
{
TEST_METHOD(TestMethode1)
{
char Section_Name[100][10] = { 0 };
int Section_Count = CalcCount(100, Section_Name, FileName_8);
CString Na, nExpect;
for (int i = 0; i < Section_Count; i++) {
GetPrivateProfileString(Section_Name[i], "input", " ", Na.GetBuffer(20), 20, FileName_8);
GetPrivateProfileString(Section_Name[i], "output", " ", nExpect.GetBuffer(100), 100, FileName_8);
int nReal = HammingWeight(_ttoi(Na));
Assert::AreEqual(nReal, _ttoi(nExpect));
}
}
};
}

+ 1
- 1
Alogrithm/UnitTest/UnitTest.vcxproj View File

@@ -103,7 +103,7 @@
<SubSystem>Windows</SubSystem>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<AdditionalDependencies>../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;../Alogrithm/Debug/4_IsPalindrome.obj;../Alogrithm/Debug/5_MinDepth.obj;../Alogrithm/Debug/6_ContainsDuplicate.obj;../Alogrithm/Debug/7_MaxDepth.obj;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;../Alogrithm/Debug/4_IsPalindrome.obj;../Alogrithm/Debug/5_MinDepth.obj;../Alogrithm/Debug/6_ContainsDuplicate.obj;../Alogrithm/Debug/7_MaxDepth.obj;../Alogrithm/Debug/8_HammingWeight.obj;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">


+ 1
- 0
Alogrithm/UnitTest/pch.h View File

@@ -20,6 +20,7 @@
#include"../Alogrithm/include/5_MinDepth.h"
#include"../Alogrithm/include/6_ContainsDuplicate.h"
#include"../Alogrithm/include/7_MaxDepth.h"
#include"../Alogrithm/include/8_HammingWeight.h"


int CalcCount(int n, char(*str)[10],const char *FileName);


Loading…
Cancel
Save