Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 0
Merge template#9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Uh oh!
There was an error while loading. Please reload this page.
Merged
Changes from all commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
35ce3fa
update test data commit
cheroy-ntia d848824
update description
cheroy-ntia b731c30
update template
cheroy-ntia 9b329dd
Merge branch 'template-main'
cheroy-ntia f8b9ff0
update README template
cheroy-ntia 65c3c5d
Merge branch 'template-main' into merge_template
cheroy-ntia 038730a
add csv_to_test_dict
cheroy-ntia 9867a46
Merge branch 'template-main' into merge_template
cheroy-ntia 5448d85
add convertResultStruct
cheroy-ntia b82c151
add SolutionMethod enum
cheroy-ntia 11d439d
test invalid pol
cheroy-ntia 9957b90
update comments
cheroy-ntia 9ac91d1
update trademark
cheroy-ntia 9edf881
Merge branch 'template-main' into merge_template
cheroy-ntia 7400b9f
Merge branch 'template-main' into merge_template
cheroy-ntia 93934ab
add comments
cheroy-ntia 0386d3e
update test data submodule
cheroy-ntia File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Jump to file
Failed to load files.
Loading
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -51,18 +51,16 @@ When complete, features branches should merge into `dev`. | ||
| ### Git Submodules | ||
| Software in the ITS Propagation Library is implemented primarily in C++. Each piece | ||
| of software has a primary repository which contains the base C++ implementation, | ||
| test data and resources, and common files used by the multi-language wrappers. | ||
| Interfaces for additional programming languages are provided in separate repositories, | ||
| which are linked to the primary repository as [Git submodules](https://gist.github.com/gitaarik/8735255). | ||
| When cloning the primary repository, the submodules are not additionally cloned | ||
| by default. This can be done with the `git submodule init` command. Initializing | ||
| the submodule as part of the parent repository will let you use the build | ||
| configuration from the primary repository to compile the C++ source and place it | ||
| appropriately for use by the wrapper code. If you choose to independently clone | ||
| the wrapper repository, you will likely need to separately download the compiled | ||
| library (for example, a DLL from a GitHub release). | ||
| PropLib C++ repositories make use of Git submodules to reference certain development | ||
| dependencies, e.g. GoogleTest. Depending on the CMake preset or options used, submodules | ||
| may be required to successfully build and/or test the software. When cloning a repository, | ||
| submodules are not additionally cloned by default. Use the following commands to initialize | ||
| and clone any submodules in a repository: | ||
| ```cmd | ||
| git submodule init | ||
| git submodule update | ||
| ``` | ||
| ### Contributing on GitHub | ||
| @@ -130,35 +128,27 @@ repository. For details about wrapper repositories, refer to their own README fi | ||
| ```bash | ||
| app/ # The command-line driver which can run the library | ||
| data/ # Example input and output files for use with the driver | ||
| include/ # Headers used by the command-line driver | ||
| src/ # Source code for the command-line driver | ||
| tests/ # Header and source files for testing the command-line driver | ||
| CMakeLists.txt # Configuration for the command-line driver and its tests | ||
| README.md # Usage information for the command-line driver | ||
| docs/ | ||
| CMakeLists.txt # Doxygen configuration | ||
| ... # Static files (images, HTML, CS, Markdown) used by Doxygen | ||
| extern/ | ||
| ... # External Git submodules/dependencies | ||
| test-data/ # Git submodule containing test data files shared with wrappers | ||
| ... # Other external Git submodules/dependencies | ||
| include/ | ||
| <PackageNamespace>/ # Include namespace folder, e.g. "ITS.Propagation.ITM" | ||
| <HeaderFiles>.h # Library header files go here, e.g. "ITM.h" and "ErrorCodes.h" | ||
| <HeaderFile>.h # Library interface header file goes here, e.g. "ITM.h" | ||
| src/ | ||
| <SourceFiles>.cpp # Source files go here, e.g. "LongleyRice.cpp" and "FreeSpaceLoss.cpp" | ||
| CMakeLists.txt # Configures cross-platform build | ||
| tests/ | ||
| data/ | ||
| <TestDataFiles>.csv # Testing data goes here. Does not have to be CSV. | ||
| <TestFiles>.cpp # Unit tests, usually one test file per source file. | ||
| <TestFiles>.h # Any headers used by tests go here as well. | ||
| CMakeLists.txt # CTest+GTest config. Files containing tests must be included here. | ||
| wrap/ | ||
| dotnet/ # C#/.NET wrapper submodule. Should contain CMakeLists.txt | ||
| matlab/ # MATLAB wrapper submodule. Should contain CMakeLists.txt | ||
| python/ # Python wrapper submodule. Should contain CMakeLists.txt | ||
| CMakeLists.txt # Top-level CMakeLists.txt: project metadata and options | ||
| CMakePresets.json # Presets for CMake, e.g. "release", "debug", etc. | ||
| CMakePresets.json # Presets for CMake, e.g. "release64", "debug32", etc. | ||
| ... | ||
| ``` | ||
| @@ -179,7 +169,6 @@ The following CMake options are used for top-level project configuration: | ||
| | `RUN_DRIVER_TESTS` | `ON` | Test the command-line driver executable | | ||
| | `DOCS_ONLY` | `OFF` | Skip all steps _except_ generating the documentation site | | ||
| | `RUN_TESTS` | `ON` | Run unit tests for the main library | | ||
| | `COPY_TO_WRAPPERS` | `ON` | Copy the compiled shared library into wrapper submodules | | ||
| [CMake Presets](https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html) are | ||
| provided to support common build configurations. These are specified in the | ||
| @@ -202,21 +191,21 @@ generating the Doxygen documentation site. | ||
| Below are some examples of how CMake can be called to compile this software. | ||
| ```bash | ||
| # Configure and compile in release configuration | ||
| cmake --preset release | ||
| cmake --build --preset release | ||
| # Configure and compile in 64-bit release configuration | ||
| cmake --preset release64 | ||
| cmake --build --preset release64 | ||
| # Use the release configuration but don't build Doxygen docs | ||
| cmake --preset release -DBUILD_DOCS=OFF | ||
| cmake --build --preset release | ||
| # Use the 64-bit release configuration but don't build Doxygen docs | ||
| cmake --preset release64 -DBUILD_DOCS=OFF | ||
| cmake --build --preset release64 | ||
| # Configure and compile in debug configuration | ||
| cmake --preset debug | ||
| cmake --build --preset debug | ||
| # Configure and compile in 32-bit debug configuration | ||
| cmake --preset debug32 | ||
| cmake --build --preset debug32 | ||
| # Use the release configuration but don't run driver tests | ||
| cmake --preset release -DRUN_DRIVER_TESTS=OFF | ||
| cmake --build --preset release | ||
| # Use the 64-bit release configuration but don't run driver tests | ||
| cmake --preset release64 -DRUN_DRIVER_TESTS=OFF | ||
| cmake --build --preset release64 | ||
| ``` | ||
| ### Supported Platforms and Build Options | ||
| @@ -243,7 +232,7 @@ example showing the expected documentation formats. Except for inline documentat | ||
| use the JavaDoc banner style [described by Doxygen](https://www.doxygen.nl/manual/docblocks.html) | ||
| ```cpp | ||
| constexpr double = PI 3.1415; /**< Inline format, e.g. for constants */ | ||
| constexpr double = PI 3.1415; ///< Inline format, e.g. for constants | ||
| /******************************************************************************* | ||
| * This is a brief description of the function. | ||
| @@ -273,8 +262,36 @@ the Doxygen site to GitHub Pages. | ||
| ### MATLAB Wrappers | ||
| Most code in the MATLAB wrapper is actually written in C. In these files, the same | ||
| documentation style as noted above for C++ should be used. | ||
| MATLAB® wrappers are implemented as toolboxes which interface with the shared library | ||
| compiled from C++ source code. The project structure is informed by the best practices | ||
| provided by MathWorks® in their [`toolboxdesign` repository](https://github.com/mathworks/toolboxdesign). | ||
| Here is an example of how a function may be documented in a MATLAB wrapper. Note the | ||
| documentation with code, where input and output arguments are provided for autocompletion. | ||
| ```matlab | ||
| function y = DoubleTheInput(x) | ||
| % DoubleTheInput - produces an output which is twice its input. | ||
| % | ||
| % Syntax: | ||
| % y = DoubleTheInput(x) | ||
| % | ||
| % Input Arguments: | ||
| % x (double) - A number which needs doubling | ||
| % | ||
| % Output Arguments: | ||
| % y (double) - The result, 2*x | ||
| % | ||
| % Description: | ||
| % Functions more complex than this one may warrant an additional, | ||
| % longer description. | ||
| arguments (Input) | ||
| x double | ||
| end | ||
| arguments (Output) | ||
| y double | ||
| end | ||
| ... | ||
| ``` | ||
| ### Python Wrappers | ||
| @@ -302,9 +319,9 @@ def double_the_input(x: float) -> float: | ||
| return 2 * x | ||
| ``` | ||
| ### C#/.NET Wrappers | ||
| ### .NET Wrappers | ||
| In C#/.NET, documentation comments are written in | ||
| PropLib .NET wrappers are written in C# and documentation comments are written in | ||
jodumkeNTIA marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| [XML format](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/documentation-comments) | ||
| and are used to generate documentation through tools like Visual Studio. Use `<summary>` tags to | ||
| provide brief descriptions of classes, constants, functions, etc. Functions should | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,8 +1,8 @@ | ||
| # GitHub Repository Public Release Approval | ||
| **Project Name:** NTIA/OSM Research and Development | ||
| **Project Name:** NTIA/OSM Research and Development - Propagation Library | ||
| **Software Name:** Low Frequency / Medium Frequency (LF/MF) Propagation Model, Python Wrapper | ||
| **Software Name:** Low Frequency / Medium Frequency (LF/MF) Propagation Model, Python® Wrapper | ||
| The project identified above, which is contained within the repository this | ||
| document is stored in, has met the following criteria for public release: | ||
| @@ -18,14 +18,14 @@ mark next to each attests that the criterion has been met. | ||
| * [x] The repository includes the appropriate `LICENSE.md` file | ||
| 2. [x] Any test data necessary for the code and its unit tests to function is included in this | ||
| GitHub repository, either directly or as a linked Git submodule. | ||
| 3. [x] The README.md file has passed editorial review from the ITS Publications Office. | ||
| 3. [x] The README.md file has passed editorial review by the ITS Publications Office. | ||
| 4. [x] The project complies with the ITS Code Style Guide or an appropriate style | ||
| guide as agreed to by the sponsor, project lead, or Supervising Division Chief. | ||
| 5. [x] Approved disclaimer and licensing language has been included. | ||
| In order to complete this approval, please create a new branch, upload and commit | ||
| your version of this Markdown document to that branch, then create a pull request | ||
| for that branch. The following must login to GitHub and approve that pull request | ||
| your version of this Markdown document to that branch, and then create a pull request | ||
| for that branch. The following must log in to GitHub and approve that pull request | ||
jodumkeNTIA marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| before the pull request can be merged and this repo made public: | ||
| * Project Lead: William Kozma, Jr. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -10,12 +10,17 @@ | ||
| read_csv_test_data("LFMF_Examples.csv"), | ||
| ) | ||
| def test_lfmf(inputs, rtn, expected): | ||
| if rtn == 0: | ||
| result = LFMF.LFMF(*inputs) | ||
| assert result.A_btl__db == pytest.approx(expected[0], abs=ABSTOL__DB) | ||
| assert result.E__dBuVm == pytest.approx(expected[1], abs=ABSTOL__DB) | ||
| assert result.P_rx__dbm == pytest.approx(expected[2], abs=ABSTOL__DB) | ||
| assert result.method == int(expected[3]) | ||
| if rtn != 40: | ||
jodumkeNTIA marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| pol = LFMF.Polarization(int(inputs[-1])) | ||
| if rtn == 0: | ||
| result = LFMF.LFMF(*inputs[:-1], pol) | ||
| assert result.A_btl__db == pytest.approx(expected[0], abs=ABSTOL__DB) | ||
| assert result.E__dBuVm == pytest.approx(expected[1], abs=ABSTOL__DB) | ||
| assert result.P_rx__dbm == pytest.approx(expected[2], abs=ABSTOL__DB) | ||
| assert result.method == LFMF.SolutionMethod(int(expected[3])) | ||
| else: | ||
| with pytest.raises(RuntimeError): | ||
| LFMF.LFMF(*inputs[:-1], pol) | ||
| else: | ||
| with pytest.raises(RuntimeError): | ||
| LFMF.LFMF(*inputs) | ||
| LFMF.LFMF(*inputs[:-1], int(inputs[-1])) | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.