Commit Graph

349 Commits

Author SHA1 Message Date
cygon
40cf645ef1 Moved all unit test files into a separate directory in preparation for splitting the project 2024-07-24 13:27:29 +02:00
Markus Ewald
14572d5947 Added Markdown documentation to Visual Studio project 2024-06-18 19:05:19 +02:00
cygon
c8fd327f7d Added NUnit and NMock via NuGet instead of relying on the VCS 2024-06-17 23:44:50 +02:00
cygon
102704649f Added proper license and attribution statements 2024-06-13 18:57:01 +02:00
cygon
52dc3d3708 Changed license to Apache License 2.0 2024-06-13 18:36:21 +02:00
Markus Ewald
d3bf0be9d7 Added alternative .NET 4.6.2 project
git-svn-id: file:///srv/devel/repo-conversion/nusu@344 d2e56fa2-650e-0410-a79f-9358c0239efd
2023-10-03 12:33:17 +00:00
Markus Ewald
3acba1311c Made the storable binding list public
git-svn-id: file:///srv/devel/repo-conversion/nusu@343 d2e56fa2-650e-0410-a79f-9358c0239efd
2022-11-05 11:49:53 +00:00
Markus Ewald
5cba0ed266 Added a sortable variant of the BindingList class (useful in getting DataGridViews to be not quite so silly)
git-svn-id: file:///srv/devel/repo-conversion/nusu@342 d2e56fa2-650e-0410-a79f-9358c0239efd
2022-11-03 20:04:45 +00:00
Markus Ewald
0e49d46eab Simplified and optimized the QuickSort() method for IList<T>; added unit test that verifies the sorting algorithm with a large number of elements both for insertion sort and quicksort
git-svn-id: file:///srv/devel/repo-conversion/nusu@341 d2e56fa2-650e-0410-a79f-9358c0239efd
2022-11-03 18:55:30 +00:00
Markus Ewald
41691ddf94 Vastly simplified the quicksort implementation (split out the partition sorting code into a separate method like most code examples did)
git-svn-id: file:///srv/devel/repo-conversion/nusu@340 d2e56fa2-650e-0410-a79f-9358c0239efd
2022-11-03 11:33:16 +00:00
Markus Ewald
a10d30e6ea Created a separate 'Partition' structure for the QuickSort() method so the Stack (used to avoid recursion) is a bit cleaner
git-svn-id: file:///srv/devel/repo-conversion/nusu@339 d2e56fa2-650e-0410-a79f-9358c0239efd
2022-11-02 22:39:33 +00:00
Markus Ewald
e3ca928636 Implemented a messy QuickSort method for IList, appears to be working but needs to be cleaned and optimized still
git-svn-id: file:///srv/devel/repo-conversion/nusu@338 d2e56fa2-650e-0410-a79f-9358c0239efd
2022-11-02 22:27:51 +00:00
Markus Ewald
48dce94f47 Added an IList extensions class that can sort IList<T> using the insertion sort algorithm
git-svn-id: file:///srv/devel/repo-conversion/nusu@337 d2e56fa2-650e-0410-a79f-9358c0239efd
2022-11-02 18:54:21 +00:00
Markus Ewald
c7dd57f59f Added ListSegment class which is analogous to StringSegment and ArraySegment, but for IList<T>
git-svn-id: file:///srv/devel/repo-conversion/nusu@336 d2e56fa2-650e-0410-a79f-9358c0239efd
2022-11-02 18:05:04 +00:00
Markus Ewald
207a17712e Fixed a potential NullReferenceException (though I'm thinking about phasing out the method it's happening in entirely)
git-svn-id: file:///srv/devel/repo-conversion/nusu@335 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-08 18:27:15 +00:00
Markus Ewald
8cc16143de Cleaned and added a base class for view models with background processing tha uses the new ThreadedAction class to do its background processing; added a view binding interface for WinForms that emulates the WPF design
git-svn-id: file:///srv/devel/repo-conversion/nusu@334 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-06 07:00:27 +00:00
Markus Ewald
97183d2335 The Shared helper is now obsolete (singletons are just too bad, not even suitable as workaround for static methods in interfaces for generic types; some cosmetic changes; made the ThreadRunner public
git-svn-id: file:///srv/devel/repo-conversion/nusu@333 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-02 12:47:07 +00:00
Markus Ewald
2f82a2fdf9 Updated Mono project (may replace it with pure SCons or Gradle build soon); added a threaded task runner I wrote for some WPF applications going through MCSE; wrote more unit tests for the thread runner
git-svn-id: file:///srv/devel/repo-conversion/nusu@332 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-02 09:12:00 +00:00
Markus Ewald
e6e0220fb3 Used pragmas to avoid warnings in unit tests designed to test obsolete methods; method thread-related classes into a new namespace, 'Threading'
git-svn-id: file:///srv/devel/repo-conversion/nusu@331 d2e56fa2-650e-0410-a79f-9358c0239efd
2019-02-01 19:54:28 +00:00
Markus Ewald
a934fb155e Fixed async task notifications; added more comments; restored CancellationToken methods; removed useless usings
git-svn-id: file:///srv/devel/repo-conversion/nusu@330 d2e56fa2-650e-0410-a79f-9358c0239efd
2017-01-21 22:08:24 +00:00
Markus Ewald
fdf4442163 Added a set of interfaces implementing async methods in a plain enough way to support coroutines, RPC and P/Invokes; updated copyright statement for the year 2017
git-svn-id: file:///srv/devel/repo-conversion/nusu@329 d2e56fa2-650e-0410-a79f-9358c0239efd
2017-01-21 21:33:55 +00:00
Markus Ewald
6053f5a877 Found some more bits and pieces of WinRT + Xbox 360 support code and removed them
git-svn-id: file:///srv/devel/repo-conversion/nusu@328 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-08-19 11:32:56 +00:00
Markus Ewald
3f1809e5cc Fixed a bug in the ValueCollection: SyncRoot was returning the IsSynchronized property of the internal collection
git-svn-id: file:///srv/devel/repo-conversion/nusu@327 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-28 22:14:30 +00:00
Markus Ewald
7dd08c93e0 Removed the last traces on WinRT compatibility
git-svn-id: file:///srv/devel/repo-conversion/nusu@326 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-28 11:00:08 +00:00
Markus Ewald
ab6a3374d8 More documentation
git-svn-id: file:///srv/devel/repo-conversion/nusu@325 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-24 16:04:09 +00:00
Markus Ewald
3a945f5d48 Minor cosmetic improvements
git-svn-id: file:///srv/devel/repo-conversion/nusu@324 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-23 19:20:42 +00:00
Markus Ewald
52401a43ac The windows registry store can now enumerate non-existing categories, too
git-svn-id: file:///srv/devel/repo-conversion/nusu@323 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-22 22:04:16 +00:00
Markus Ewald
f74f1d0c6c Fixed a typo
git-svn-id: file:///srv/devel/repo-conversion/nusu@322 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-22 21:28:31 +00:00
Markus Ewald
dfc9be412a One unit test opened HKEY_LOCAL_MACHINE for testing, but it seems Mono on Linux doesn't grant even read access to this (emulated) key, so the unit test now uses HKEY_CURRENT_USER
git-svn-id: file:///srv/devel/repo-conversion/nusu@321 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-22 20:26:43 +00:00
Markus Ewald
40492c8b21 Achieved full test coverage for the configuration file store and the windows registry settings store
git-svn-id: file:///srv/devel/repo-conversion/nusu@320 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-22 20:02:33 +00:00
Markus Ewald
58504f4a8a Fully implemented the windows registry-based settings store; added more unit tests for the registry settings store
git-svn-id: file:///srv/devel/repo-conversion/nusu@319 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-22 16:24:08 +00:00
Markus Ewald
0d1051dd84 Documented the intended interface for the settings store; parseBooleanLiteral() is now a private method in the ConfigurationFileStore again; added some unit tests for the registry-based settings store
git-svn-id: file:///srv/devel/repo-conversion/nusu@318 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-22 15:58:07 +00:00
Markus Ewald
88105794a9 The configuration file store now understands 'yes' and 'no' as booleans; implemented the Get() and TryGet() methods of the windows registry settings store
git-svn-id: file:///srv/devel/repo-conversion/nusu@317 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-22 11:10:14 +00:00
Markus Ewald
e5f8b99519 Enumerating categories and options with the registry-based settings store is now working; updated mono-3.5 project
git-svn-id: file:///srv/devel/repo-conversion/nusu@316 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-22 10:43:23 +00:00
Markus Ewald
b6fe183994 Found some more remaining traces of Microsoft's scrapyard and killed them; removed WinRT support
git-svn-id: file:///srv/devel/repo-conversion/nusu@315 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-22 08:56:33 +00:00
Markus Ewald
b1b1f02e6f Removed the last traces of Windows Phone 7 and Xbox 360 support
git-svn-id: file:///srv/devel/repo-conversion/nusu@314 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-22 08:50:05 +00:00
Markus Ewald
9a4a051100 The unit test for the float helper was public -- fixed
git-svn-id: file:///srv/devel/repo-conversion/nusu@313 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-21 17:11:48 +00:00
Markus Ewald
cb85b3025e Added XML documentation for the mono-3.5 project
git-svn-id: file:///srv/devel/repo-conversion/nusu@312 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-21 16:21:02 +00:00
Markus Ewald
e8c21b91d4 Allowed compilation and unit tests with the mono-3.5 profile and without NMock
git-svn-id: file:///srv/devel/repo-conversion/nusu@311 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-21 16:17:13 +00:00
Markus Ewald
de4a7d2213 Added support for compilation under the Mono 3.5 profile; removed support for Windows Phone and Xbox 360
git-svn-id: file:///srv/devel/repo-conversion/nusu@310 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-21 15:46:40 +00:00
Markus Ewald
f9ebc95dd9 Updated the project files for the other platforms (but all XNA-related projects will be removed in the near future - betting on Microsoft was a mistake)
git-svn-id: file:///srv/devel/repo-conversion/nusu@309 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-21 13:07:22 +00:00
Markus Ewald
d55ba52369 Fully implemented the memory store and added unit tests for it
git-svn-id: file:///srv/devel/repo-conversion/nusu@308 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-21 12:58:33 +00:00
Markus Ewald
03ada146e5 Simplified the parsing code; all code paths of the configuration file store are now covered by tests
git-svn-id: file:///srv/devel/repo-conversion/nusu@307 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-21 12:03:22 +00:00
Markus Ewald
55b3ffd923 Options can now be removed from a configuration file; added more unit tests to cover all the code paths
git-svn-id: file:///srv/devel/repo-conversion/nusu@306 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-21 10:33:24 +00:00
Markus Ewald
7bde463b2a Changing and adding options works perfectly now
git-svn-id: file:///srv/devel/repo-conversion/nusu@305 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-20 23:18:44 +00:00
Markus Ewald
73a17b7a3e Changed the format of how the parsed configuration file is stored in memory - lines are now part of the categories, avoiding a costly scan over the whole array if lines are added to a category in the middle
git-svn-id: file:///srv/devel/repo-conversion/nusu@304 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-20 22:53:03 +00:00
Markus Ewald
0753aeb220 Configuration file parsing should be complete now (but creation and changing not so much)
git-svn-id: file:///srv/devel/repo-conversion/nusu@303 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-20 21:30:41 +00:00
Markus Ewald
7e39bd684f ConfigurationFileStore now parses category definitions and some cases of options; wrote a few methods for changing options and creating options and categories
git-svn-id: file:///srv/devel/repo-conversion/nusu@302 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-20 18:14:06 +00:00
Markus Ewald
ea68676cd2 Added some unit tests; the configuration file parser can now parse categories
git-svn-id: file:///srv/devel/repo-conversion/nusu@301 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-20 12:42:09 +00:00
Markus Ewald
91d382a940 There were some tab characters. Now they're dead.
git-svn-id: file:///srv/devel/repo-conversion/nusu@300 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-20 07:20:21 +00:00