|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Threading;
using System.Diagnostics;
using System.Windows;
namespace TLS
{
//=============================================================================================
class TestAttribute : Attribute
{
public int Index { get; set; }
public string Name { get; set; }
public TestAttribute( int index, string name )
{
Index = index;
Name = name;
}
}
//=============================================================================================
class TestInfo : DependencyObject
{
//-----------------------------------------------------------------------------------------
// all tests
static SortedList<int, TestInfo> _Tests = new SortedList<int, TestInfo>();
public static ICollection<TestInfo> Tests { get { return _Tests.Values; } }
static TestInfo()
{
var assembly = Assembly.GetExecutingAssembly();
foreach ( var type in assembly.GetTypes() )
foreach ( var attribute in type.GetCustomAttributes( typeof( TestAttribute ), false ) )
{
var a = attribute as TestAttribute;
_Tests.Add( a.Index, new TestInfo { Attribute = a, Type = type } );
}
}
//-----------------------------------------------------------------------------------------
public TestAttribute Attribute { get; set; }
public Type Type { get; set; }
public TestBase Create()
{
return Activator.CreateInstance( Type ) as TestBase;
}
//-----------------------------------------------------------------------------------------
// DependencyProperties
public int IterationsPerSecond
{
get { return ( int ) GetValue( IterationsPerSecondProperty ); }
set { SetValue( IterationsPerSecondProperty, value ); }
}
public int IterationsPerSecondPerCore
{
get { return ( int ) GetValue( IterationsPerSecondPerCoreProperty ); }
set { SetValue( IterationsPerSecondPerCoreProperty, value ); }
}
public static readonly DependencyProperty IterationsPerSecondProperty =
DependencyProperty.Register(
"OperationsPerSecond",
typeof( int ),
typeof( TestInfo ),
new PropertyMetadata( 0 ) );
public static readonly DependencyProperty IterationsPerSecondPerCoreProperty =
DependencyProperty.Register(
"OperationsPerSecondPerCore",
typeof( int ),
typeof( TestInfo ),
new PropertyMetadata( 0 ) );
//-----------------------------------------------------------------------------------------
}
//=============================================================================================
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I discovered C# and .NET 1.0 Beta 1 in late 2000 and loved them immediately.
I have been writing software professionally in C# ever since
In real life, I have spent 3 years travelling abroad,
I have held a UK Private Pilots Licence for 20 years,
and I am a PADI Divemaster.
I now live near idyllic Bournemouth in England.
I can work 'virtually' anywhere!