alpar@119: /* -*- C++ -*-
alpar@119:  *
alpar@119:  * This file is a part of LEMON, a generic C++ optimization library
alpar@119:  *
alpar@119:  * Copyright (C) 2003-2008
alpar@119:  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
alpar@119:  * (Egervary Research Group on Combinatorial Optimization, EGRES).
alpar@119:  *
alpar@119:  * Permission to use, modify and distribute this software is granted
alpar@119:  * provided that this copyright notice appears in all copies. For
alpar@119:  * precise terms see the accompanying LICENSE file.
alpar@119:  *
alpar@119:  * This software is provided "AS IS" with no warranty of any kind,
alpar@119:  * express or implied, and with no claim as to its suitability for any
alpar@119:  * purpose.
alpar@119:  *
alpar@119:  */
alpar@119: 
alpar@119: #include <lemon/counter.h>
alpar@119: 
alpar@119: ///\file \brief Test cases for time_measure.h
alpar@119: ///
alpar@119: ///\todo To be extended
alpar@119: 
alpar@119: 
alpar@119: int fibonacci(int f) 
alpar@119: {
alpar@119:   static lemon::Counter count("Fibonacci steps: ");
alpar@119:   count++;
alpar@119:   if(f<1) return 0;
alpar@119:   else if(f==1) return 1;
alpar@119:   else return fibonacci(f-1)+fibonacci(f-2);
alpar@119: }
alpar@119: 
alpar@119: int main()
alpar@119: {
alpar@119:   fibonacci(10);
alpar@119:   
alpar@119:   {  
alpar@119:     typedef lemon::Counter MyCounter;
alpar@119:     MyCounter c("Main counter: ");
alpar@119:     c++;
alpar@119:     c++;
alpar@119:     MyCounter::SubCounter d(c,"Subcounter: ");
alpar@119:     d++;
alpar@119:     d++;
alpar@119:     MyCounter::SubCounter::SubCounter e(d,"SubSubCounter: ");
alpar@119:     e++;
alpar@119:     e++;
alpar@119:   }
alpar@119:   
alpar@119:   {
alpar@119:     typedef lemon::NoCounter MyCounter;
alpar@119:     MyCounter c("Main counter: ");
alpar@119:     c++;
alpar@119:     c++;
alpar@119:     MyCounter::SubCounter d(c,"Subcounter: ");
alpar@119:     d++;
alpar@119:     d++;
alpar@119:     MyCounter::SubCounter::SubCounter e(d,"SubSubCounter: ");
alpar@119:     e++;
alpar@119:     e++;
alpar@119:   }
alpar@119: 
alpar@119:   return 0;
alpar@119: }