protected override void Check() { M(4).ShouldBe(16); M(10).ShouldBe(100); ((I)this).Q(false).ShouldBe(true); ((I)this).Q(true).ShouldBe(false); N(10).ShouldBe(5); N(100).ShouldBe(50); I x = new DerivedInterface(); x.M(4).ShouldBe(16); x.M(10).ShouldBe(100); x.Q(false).ShouldBe(true); x.Q(true).ShouldBe(false); x.N(10).ShouldBe(5); x.N(100).ShouldBe(50); }