public void SpecificationNotRegisteredBug()
        {
            ReporterForTest reporter = new ReporterForTest();
            new TestRun(1, 100)
                .AddTransition(
                    new MetaTransition<Null, Null>
                    {
                        Name = "Transition",
                        GenerateInput = () => null,
                        Execute = i =>
                                      {
                                          throw new Exception();
                                          return null;
                                      }
                    }
                    .RegisterSpec(
                        (input, output) => new Spec("Spec", ()=> { }).Throws<Exception>()
                    )
                )
                .Verify()
                .ReportSpecsTested(reporter);

            Assert.AreEqual(1, reporter.SpecsTested.Count);

            Assert.AreEqual("Transition Spec", reporter.SpecsTested[0].Name);
            Assert.AreEqual(100, reporter.SpecsTested[0].TimesTested);

        }
        public void Test()
        {
            ReporterForTest reporter = new ReporterForTest();
            new TestRun(1, 100)
                .AddTransition(
                    new MetaTransition<int, int>
                    {
                        Name = "Transition : ",
                        GenerateInput = ()=>0,
                        Execute = i=>0
                    }
                    .RegisterSpec(
                        (input, output) => new Spec("Failing Spec", () => Ensure.False(true) )
                    )
                )
                .Verify()
                .ReportSpecsTested(reporter);
            
            Assert.AreEqual(1, reporter.SpecsTested.Count);

            Assert.AreEqual("Transition :  Failing Spec", reporter.SpecsTested[0].Name);
            Assert.AreEqual(0, reporter.SpecsTested[0].TimesTested);

        }