# Tribool library

# Copyright (C) 2002-2003 Douglas Gregor

# Use, modification and distribution is subject to the Boost Software License, 
# Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 
# http://www.boost.org/LICENSE_1_0.txt) 

# For more information, see http://www.boost.org/

  test-suite logic  : 
    [ run tribool_test.cpp ]
    [ run tribool_rename_test.cpp ]
    [ run tribool_io_test.cpp ]
   ;

      