Changeset 1862


Ignore:
Timestamp:
Aug 23, 2010, 5:44:30 PM (11 years ago)
Author:
malischewski
Message:

more tests. DevTestMethods.csproj modified to include reference to NativeCryptography, if this is a problem, please revert changes.

Location:
trunk/DevTestMethods
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/DevTestMethods/CostFunctionTest.cs

    r1859 r1862  
    33using System.Collections.Generic;
    44using System.Linq;
     5using System.IO;
     6using System.Reflection;
    57using Microsoft.VisualStudio.TestTools.UnitTesting;
    68using Cryptool.Plugins.CostFunction;
     9using Cryptool.PluginBase.Cryptography;
    710namespace Tests
    811{
     
    2629        {
    2730            string input = "In der Kryptographie ist die Transposition ein Verschluesselungsverfahren, bei dem die Zeichen einer Botschaft (des Klartextes) umsortiert werden. Jedes Zeichen bleibt unveraendert erhalten, jedoch wird die Stelle, an der es steht, geaendert. Dies steht im Gegensatz zu den Verfahren der (monoalphabetischen oder polyalphabetischen) Substitution, bei denen jedes Zeichen des Klartextes seinen Platz behaelt, jedoch durch ein anderes Zeichen ersetzt (substituiert) wird.";
    28             double output = 7.38051470588235;
     31            double target = 7.38051470588235;
    2932            System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding(); // String to Byte Conversion
    3033            CostFunction cf = new CostFunction();
    3134
     35
     36            //Index of Conincidence
    3237            cf.Initialize();
    3338
     
    3843            cf.PreExecution(); // MUST BE CALLED!
    3944            cf.Execute();
    40             testContextInstance.WriteLine(cf.Value.ToString());
    41             Assert.AreEqual(output, cf.Value, 0.00000000000001); // Uhm. Close enough? Oo
    4245
     46            Assert.AreEqual(target, cf.Value, 0.00000000000001); // Uhm. Close enough? Oo
    4347
    44             output = 4.25374598691653;
    45            
    46 
     48            //Entropy
     49            target = 4.25374598691653;
    4750            cf.Initialize();
    48 
    4951            cf.InputText = enc.GetBytes(input);
    50 
    51             testContextInstance.WriteLine(enc.GetString(cf.InputText));
    5252            cf.changeFunctionType(1);
    5353            cf.PreExecution(); // MUST BE CALLED!
    5454            cf.Execute();
     55
     56            Assert.AreEqual(target, cf.Value, 0.00000000000001); // Uhm. Close enough? Oo
     57
     58           
     59            //Bigrams: log 2
     60            target = 265.318365029242;
     61            string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
     62            path = Environment.CurrentDirectory;
     63            for (int i = 0; i < 3; i++)
     64            {
     65                path = System.IO.Path.GetDirectoryName(path);
     66            }
     67            path = Path.Combine(path, "CrypBuild\\x86\\Debug\\Data\\StatisticsCorpusDE");
     68           
     69            this.testContextInstance.WriteLine(path);
     70            cf.setDataPath(path);
     71            cf.Initialize();
     72            cf.InputText = enc.GetBytes(input);
     73            cf.changeFunctionType(2);
     74            cf.PreExecution(); // MUST BE CALLED!
     75            cf.Execute();
    5576            testContextInstance.WriteLine(cf.Value.ToString());
    56             Assert.AreEqual(output, cf.Value, 0.00000000000001); // Uhm. Close enough? Oo
    57 
     77            Assert.AreEqual(target, cf.Value, 0.000000000001); // Seriously what's whats up with the tolerances?
     78           
     79            //Bigrams: Sinkov
     80            target = -548.360297827531;
     81            cf.Initialize();
     82            cf.InputText = enc.GetBytes(input);
     83            cf.changeFunctionType(3);
     84            cf.PreExecution(); // MUST BE CALLED!
     85            cf.Execute();
     86            testContextInstance.WriteLine(cf.Value.ToString());
     87            Assert.AreEqual(target, cf.Value, 0.000000000001); // Uhm. Close enough? Oo
     88           
     89            //Bigrams: Percentaged
     90            target = 0.20132645541636;
     91            cf.Initialize();
     92            cf.InputText = enc.GetBytes(input);
     93            cf.changeFunctionType(4);
     94            cf.PreExecution(); // MUST BE CALLED!
     95            cf.Execute();
     96            testContextInstance.WriteLine(cf.Value.ToString());
     97            Assert.AreEqual(target, cf.Value, 0.00000000000001); // Uhm. Close enough? Oo
     98            /*
     99            //RegEx
     100            target = 4.25374598691653;
     101            cf.Initialize();
     102            cf.InputText = enc.GetBytes(input);
     103            cf.changeFunctionType(5);
     104            cf.PreExecution(); // MUST BE CALLED!
     105            cf.Execute();
     106            testContextInstance.WriteLine(cf.Value.ToString());
     107            Assert.AreEqual(target, cf.Value, 0.00000000000001); // Uhm. Close enough? Oo
     108            */
     109            //Weighted Bigrams/Trigrams
     110            target = -777.230685764826;
     111            cf.Initialize();
     112            cf.InputText = enc.GetBytes(input);
     113            cf.changeFunctionType(6);
     114            cf.PreExecution(); // MUST BE CALLED!
     115            cf.Execute();
     116            testContextInstance.WriteLine(cf.Value.ToString());
     117            Assert.AreEqual(target, cf.Value, 0.000000000001); // Uhm. Close enough? Oo
    58118        }
    59119
  • trunk/DevTestMethods/DevTestMethods.csproj

    r1487 r1862  
    7676  <ItemGroup>
    7777    <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
     78    <Reference Include="NativeCryptography">
     79      <HintPath>..\AppReferences\x86\NativeCryptography.dll</HintPath>
     80    </Reference>
    7881    <Reference Include="PresentationCore">
    7982      <RequiredTargetFramework>3.0</RequiredTargetFramework>
     
    100103  </ItemGroup>
    101104  <ItemGroup>
     105    <Compile Include="CostFunctionTest.cs" />
    102106    <Compile Include="CrypPluginBase\CStream.cs" />
    103107    <Compile Include="MD5\Algorithm\PresentableMD5Test.cs" />
     
    120124      <Name>CrypPluginBase</Name>
    121125      <Private>False</Private>
     126    </ProjectReference>
     127    <ProjectReference Include="..\CrypPlugins\CostFunction\CostFunction.csproj">
     128      <Project>{3C72FF93-48C2-4929-B3B2-83F165AAE636}</Project>
     129      <Name>CostFunction</Name>
    122130    </ProjectReference>
    123131    <ProjectReference Include="..\CrypPlugins\MD5\MD5.csproj">
     
    164172    </BootstrapperPackage>
    165173  </ItemGroup>
     174  <ItemGroup>
     175    <WCFMetadata Include="Service References\" />
     176  </ItemGroup>
    166177  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
    167178  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Note: See TracChangeset for help on using the changeset viewer.