ENH: patchCloud: return pTraits<Type>::max for unfound points
[OpenFOAM-1.7.x.git] / applications / test / dictionary / dictionaryTest.C
blobd61fd78f25556200f63cfff1959307f827887c18
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2010 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by
13     the Free Software Foundation, either version 3 of the License, or
14     (at your option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
24 Application
25     dictionaryTest
27 Description
29 \*---------------------------------------------------------------------------*/
31 #include "argList.H"
32 #include "IOstreams.H"
33 #include "IOobject.H"
34 #include "IFstream.H"
35 #include "dictionary.H"
37 using namespace Foam;
39 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
40 //  Main program:
42 int main(int argc, char *argv[])
44     argList::noParallel();
45     argList args(argc, argv);
47     Info<< nl
48         << "FOAM_CASE=" << getEnv("FOAM_CASE") << nl
49         << "FOAM_CASENAME=" << getEnv("FOAM_CASENAME") << nl
50         << endl;
53     {
54         dictionary dict1(IFstream("testDict")());
55         Info<< "dict1: " << dict1 << nl
56             << "toc: " << dict1.toc() << nl
57             << "keys: " << dict1.keys() << nl
58             << "patterns: " << dict1.keys(true) << endl;
60         dictionary dict2(dict1.xfer());
62         Info<< "dict1.toc(): " << dict1.name() << " " << dict1.toc() << nl
63             << "dict2.toc(): " << dict2.name() << " " << dict2.toc() << endl;
65         // copy back
66         dict1 = dict2;
67         Info<< "dict1.toc(): " << dict1.name() << " " << dict1.toc() << endl;
69         dictionary dict3(dict2.subDictPtr("boundaryField"));
70         dictionary dict4(dict2.subDictPtr("NONEXISTENT"));
72         Info<< "dictionary construct from pointer" << nl
73             << "ok = " << dict3.name() << " " << dict3.toc() << nl
74             << "no = " << dict4.name() << " " << dict4.toc() << endl;
75     }
78     IOobject::writeDivider(Info);
80     {
81         dictionary dict(IFstream("testDictRegex")());
82         dict.add(keyType("fooba[rz]", true), "anything");
84         Info<< "dict:" << dict << nl
85             << "toc: " << dict.toc() << nl
86             << "keys: " << dict.keys() << nl
87             << "patterns: " << dict.keys(true) << endl;
89         Info<< "Pattern find \"abc\" in top directory : "
90             << dict.lookup("abc") << endl;
91         Info<< "Pattern find \"abc\" in sub directory : "
92             << dict.subDict("someDict").lookup("abc")
93             << endl;
94         Info<< "Recursive pattern find \"def\" in sub directory : "
95             << dict.subDict("someDict").lookup("def", true)
96             << endl;
97         Info<< "Recursive pattern find \"foo\" in sub directory : "
98             << dict.subDict("someDict").lookup("foo", true)
99             << endl;
100         Info<< "Recursive pattern find \"fooz\" in sub directory : "
101             << dict.subDict("someDict").lookup("fooz", true)
102             << endl;
103         Info<< "Recursive pattern find \"bar\" in sub directory : "
104             << dict.subDict("someDict").lookup("bar", true)
105             << endl;
106         Info<< "Recursive pattern find \"xxx\" in sub directory : "
107             << dict.subDict("someDict").lookup("xxx", true)
108             << endl;
109     }
111     return 0;
115 // ************************************************************************* //