Commit Graph

111 Commits

Author SHA1 Message Date
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
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
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
0bb50d9254 Updated the copyright statement for the year 2014; remove CommandLine.txt which seemed to contain a copy of CommandLine.cs for a purpose I have long since forgotten
git-svn-id: file:///srv/devel/repo-conversion/nusu@297 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-07-19 09:13:36 +00:00
Markus Ewald
2210973528 Returned to my own naming convention - at the latest, the 'SingleInt32Union' would raise the question about where there is only a single int32 in that union
git-svn-id: file:///srv/devel/repo-conversion/nusu@295 d2e56fa2-650e-0410-a79f-9358c0239efd
2014-02-24 15:40:12 +00:00
Markus Ewald
33e26a93e7 Disabled Variegator completely on Windows Phone and Xbox 360 because those outdated .NET frameworks don't have sets (ISet)
git-svn-id: file:///srv/devel/repo-conversion/nusu@289 d2e56fa2-650e-0410-a79f-9358c0239efd
2013-07-15 13:46:07 +00:00
Markus Ewald
9a73838f6c Not using optional parameter in Variegator anymore because Windows Phone is a wuss
git-svn-id: file:///srv/devel/repo-conversion/nusu@288 d2e56fa2-650e-0410-a79f-9358c0239efd
2013-07-15 13:42:48 +00:00
Markus Ewald
63ddef021d Added more unit tests to the floating point helper classes; Variegator unit test is now internal
git-svn-id: file:///srv/devel/repo-conversion/nusu@287 d2e56fa2-650e-0410-a79f-9358c0239efd
2013-07-15 13:38:21 +00:00
Markus Ewald
2462dd6dc4 Added a C# port of my new Variegator collection, a MultiDictionary that resolves ambiguities by picking a random value or providing the least recently used one, very useful for returning varying responses
git-svn-id: file:///srv/devel/repo-conversion/nusu@286 d2e56fa2-650e-0410-a79f-9358c0239efd
2013-06-27 16:05:54 +00:00
Markus Ewald
d42aa48236 Updated copyright statement for the year 2013; fixed a warning; minor cosmetic changes
git-svn-id: file:///srv/devel/repo-conversion/nusu@282 d2e56fa2-650e-0410-a79f-9358c0239efd
2013-04-25 13:11:59 +00:00
Markus Ewald
7d4a66e9f2 Some attempts at making this compile on WinRT. Much work remains.
git-svn-id: file:///srv/devel/repo-conversion/nusu@281 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-17 13:03:40 +00:00
Markus Ewald
72511417ef ReverseComparer still used old generic argument naming convention - fixed
git-svn-id: file:///srv/devel/repo-conversion/nusu@278 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-14 15:47:31 +00:00
Markus Ewald
97de199705 It seems that contrary to what MSDN says, the Dictionary<K, T> class does not have a constructor accepting an IEqualityComparer on the Xbox 360 or Windows Phone 7; added missing documentation in Pool class
git-svn-id: file:///srv/devel/repo-conversion/nusu@270 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-08 12:05:59 +00:00
Markus Ewald
58a1652749 Added six separate constructors to avoid default parameters (which aren't supported on Windows Phone 7 or the Xbox 360)
git-svn-id: file:///srv/devel/repo-conversion/nusu@269 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-08 11:31:24 +00:00
Markus Ewald
c91a082e84 Pool can now be used with types not derived from IRecyclable and/or without a public default constructor; consolidated type-related helper methods into a common helper class (TypeHelper.cs); optimized GetFieldInfosIncludingBaseClasses() method
git-svn-id: file:///srv/devel/repo-conversion/nusu@268 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-08 11:05:20 +00:00
Markus Ewald
24439da822 Unit tests for the StringBuilderHelper weren't properly localized, containing hard-coded decimal separators - fixed; StringBuilderHelper always used a dot as a decimal separate - behavior changed so it uses the system's current locale (StringBuilderHelper should be identical to the normal StringBuilder except not produce any garbage)
git-svn-id: file:///srv/devel/repo-conversion/nusu@267 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-08 09:55:29 +00:00
Markus Ewald
21754b8e87 The expression tree cloner was not able to assign read-only field -- fixed; expanded tests to safeguard against regressions
git-svn-id: file:///srv/devel/repo-conversion/nusu@265 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-06 13:39:02 +00:00
Markus Ewald
4c408a56ad Unit tests for the ObservableSet not also tests the change notification events resulting from union/intersect/except methods; added unit tests for read-only set
git-svn-id: file:///srv/devel/repo-conversion/nusu@264 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-03 15:06:02 +00:00
Markus Ewald
07a9de6283 Some cosmetic changes; all methods in the StringBuilderHelper are now extension methods; added GarbagePolicy enumeration for StringBuilder helper methods; custom Semaphore is not internal in Windows builds to avoid ambiguous symbols
git-svn-id: file:///srv/devel/repo-conversion/nusu@263 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-03 12:45:49 +00:00
Markus Ewald
1a05bf9d63 Added some helper classes for INotifyPropertyChanged; added unit tests for the ObservableSet class; documented the second Count property exposed by the multi dictionary
git-svn-id: file:///srv/devel/repo-conversion/nusu@262 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-03 10:57:08 +00:00
Markus Ewald
df169e376a Removed overridable change notifications from MultiDictionary - accurately sending these would involve considerable overhead; added unit tests for all main interface methods of the MultiDictionary
git-svn-id: file:///srv/devel/repo-conversion/nusu@261 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-02 23:00:02 +00:00
Markus Ewald
b37c4a757c MultiDictionary wasn't firing 'removed' events when an entire set of values is replaced - fixed, but not unit-tested yet; added more unit tests to the ObservableSet class; ObservableSet was not firing the 'added' event - fixed
git-svn-id: file:///srv/devel/repo-conversion/nusu@260 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-02 21:05:05 +00:00
Markus Ewald
0195b34289 The Count property of the multi dictionary now returns either the value count of the number of unique keys depending on which interface it is called from
git-svn-id: file:///srv/devel/repo-conversion/nusu@259 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-01 14:48:53 +00:00
Markus Ewald
ca373846aa Excluded ObservableSet and ReadOnlySet implementations from Xbox 360 and Windows Phone 7 builds because these platforms don't support the ISet interface
git-svn-id: file:///srv/devel/repo-conversion/nusu@258 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-01 14:39:50 +00:00
Markus Ewald
13579c5162 Fixed unit tests that were failing due to the introdcution of the ItemReplaced event; removed NotifyCollectionResetEventArgs if no specialized collections are available
git-svn-id: file:///srv/devel/repo-conversion/nusu@257 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-01 14:05:11 +00:00
Markus Ewald
2d04ad7b49 Added ObservableSet and ReadOnlySet wrappers (no unit tests yet)
git-svn-id: file:///srv/devel/repo-conversion/nusu@256 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-01 13:51:04 +00:00
Markus Ewald
5e4de7f027 Added ItemReplaced() to IObservableCollection
git-svn-id: file:///srv/devel/repo-conversion/nusu@255 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-01 12:52:12 +00:00
Markus Ewald
75552b5150 All unit test classes are now internal; updated copyright statement for the year 2012; added hulls for the upcoming ObservableSet<> and ReadOnlySet<> classes; switched generic parameter naming convention TSomething instead of SomethingType
git-svn-id: file:///srv/devel/repo-conversion/nusu@252 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-29 16:27:43 +00:00
Markus Ewald
61c858cb1c CanGetProcessThreadForManagedThread() test now only runs on Windows systems; removed unused variable from expression tree cloner; removed unused variable from unit test of weak collection; fixed test issue parsing command lines relying on current platform being windows; removed unused variable from Semaphore class
git-svn-id: file:///srv/devel/repo-conversion/nusu@251 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-12 13:46:19 +00:00
Markus Ewald
1a215987ac ObservableCollection no longer derives from System.Collections.ObjectModel.Collection, thus it is a real ICollection that does not expose itself as an IList
git-svn-id: file:///srv/devel/repo-conversion/nusu@221 d2e56fa2-650e-0410-a79f-9358c0239efd
2011-10-25 14:59:38 +00:00
Markus Ewald
a4000c106a Added an ObservableList class which is like the ObservableCollection, but allows indexed access
git-svn-id: file:///srv/devel/repo-conversion/nusu@220 d2e56fa2-650e-0410-a79f-9358c0239efd
2011-08-24 11:33:22 +00:00
Markus Ewald
b7c883ea8d Assigning null to a key in the MultiDictionary will not delete that key (this behavior is symmetric with the behavior of querying the values under a key where null indicates that the key doesn't exist - it also doesn't add any "secret tricks" because the normal Dictionary doesn't intersect this functionality of having an extra container between the key and the values)
git-svn-id: file:///srv/devel/repo-conversion/nusu@217 d2e56fa2-650e-0410-a79f-9358c0239efd
2011-08-14 09:33:10 +00:00
Markus Ewald
a08939e914 Added INotifyCollectionChanged interface to ObservableCollection and ObservableDictionary; added a new dictionary type, the MultiDictionary which is equivalent to the C++ multimap<> class
git-svn-id: file:///srv/devel/repo-conversion/nusu@215 d2e56fa2-650e-0410-a79f-9358c0239efd
2011-07-04 22:21:57 +00:00
Markus Ewald
aa5e4d12cc Upgraded unit tests to NMock 3.0
git-svn-id: file:///srv/devel/repo-conversion/nusu@214 d2e56fa2-650e-0410-a79f-9358c0239efd
2011-03-08 20:36:43 +00:00
Markus Ewald
46cbc920b1 Removed some XNA 3.1 code paths; cleaned up constant usage in platform-specific code sections
git-svn-id: file:///srv/devel/repo-conversion/nusu@211 d2e56fa2-650e-0410-a79f-9358c0239efd
2010-12-24 01:02:56 +00:00
Markus Ewald
374152cd63 Added XNA 4.0 for Windows Phone 7 project; updated Nuclex.Support to compile targeting Windows Phone 7
git-svn-id: file:///srv/devel/repo-conversion/nusu@203 d2e56fa2-650e-0410-a79f-9358c0239efd
2010-09-17 15:29:22 +00:00
Markus Ewald
1aad371ece Added XNA 4.0 XBox 360 project; fixed compilation errors that would result from compiling Nuclex.Support on the XBox 360's special compact framework
git-svn-id: file:///srv/devel/repo-conversion/nusu@202 d2e56fa2-650e-0410-a79f-9358c0239efd
2010-09-17 01:43:00 +00:00
Markus Ewald
5f5b8b519b Updated license statement for the year 2010 ;-)
git-svn-id: file:///srv/devel/repo-conversion/nusu@201 d2e56fa2-650e-0410-a79f-9358c0239efd
2010-07-08 12:37:39 +00:00
Markus Ewald
a0a0b73a13 Fixed a nasty bug that would corrupt the WeakCollection upon calling RemoveDeadItems()
git-svn-id: file:///srv/devel/repo-conversion/nusu@194 d2e56fa2-650e-0410-a79f-9358c0239efd
2010-04-16 10:26:06 +00:00