cloudy trunk
Loading...
Searching...
No Matches
TestEnergy.cpp
Go to the documentation of this file.
1/* This file is part of Cloudy and is copyright (C)1978-2013 by Gary J. Ferland and
2 * others. For conditions of distribution and use see copyright notice in license.txt */
3#include "cdstd.h"
4#include <UnitTest++.h>
5#include "cddefines.h"
6#include "physconst.h"
7#include "energy.h"
8
9namespace {
10
11 TEST(TestEnergyCTor)
12 {
13 Energy Ezero;
14 CHECK( fp_equal( Ezero.Ryd(), 0. ) );
15 Energy Eryd0(1.);
16 CHECK( fp_equal( Eryd0.Ryd(), 1. ) );
17 Energy Eryd1(1.,"Ryd");
18 CHECK( fp_equal( Eryd1.Ryd(), 1. ) );
19 Energy Eerg(1.,"erg");
20 CHECK( fp_equal( Eerg.Ryd(), 1./EN1RYD ) );
21 Energy EeV(1.,"eV");
22 CHECK( fp_equal( EeV.Ryd(), 1./EVRYD ) );
23 Energy EkeV(1.,"keV");
24 CHECK( fp_equal( EkeV.Ryd(), 1.e3/EVRYD ) );
25 Energy EMeV(1.,"MeV");
26 CHECK( fp_equal( EMeV.Ryd(), 1.e6/EVRYD ) );
27 Energy Ewavn(1.,"cm^-1");
28 CHECK( fp_equal( Ewavn.Ryd(), 1./RYD_INF ) );
29 Energy Ecm(1.,"cm");
30 CHECK( fp_equal( Ecm.Ryd(), RYDLAM/1.e8 ) );
31 Energy Emm(1.,"mm");
32 CHECK( fp_equal( Emm.Ryd(), RYDLAM/1.e7 ) );
33 Energy Eum(1.,"um");
34 CHECK( fp_equal( Eum.Ryd(), RYDLAM/1.e4 ) );
35 Energy Enm(1.,"nm");
36 CHECK( fp_equal( Enm.Ryd(), RYDLAM/1.e1 ) );
37 Energy EA(1.,"A");
38 CHECK( fp_equal( EA.Ryd(), RYDLAM ) );
39 Energy EHz(1.,"Hz");
40 CHECK( fp_equal( EHz.Ryd(), 1./FR1RYD ) );
41 Energy EkHz(1.,"kHz");
42 CHECK( fp_equal( EkHz.Ryd(), 1.e3/FR1RYD ) );
43 Energy EMHz(1.,"MHz");
44 CHECK( fp_equal( EMHz.Ryd(), 1.e6/FR1RYD ) );
45 Energy EGHz(1.,"GHz");
46 CHECK( fp_equal( EGHz.Ryd(), 1.e9/FR1RYD ) );
47 Energy EK(1.,"K");
48 CHECK( fp_equal( EK.Ryd(), 1./TE1RYD ) );
49 }
50
51 TEST(TestEnergySet)
52 {
53 Energy E;
54 E.set(10.);
55 CHECK( fp_equal( E.Ryd(), 10. ) );
56 E.set(10.,"Ryd");
57 CHECK( fp_equal( E.Ryd(), 10. ) );
58 E.set(10.,"erg");
59 CHECK( fp_equal( E.Ryd(), 10./EN1RYD ) );
60 E.set(10.,"eV");
61 CHECK( fp_equal( E.Ryd(), 10./EVRYD ) );
62 E.set(10.,"keV");
63 CHECK( fp_equal( E.Ryd(), 1.e4/EVRYD ) );
64 E.set(10.,"MeV");
65 CHECK( fp_equal( E.Ryd(), 1.e7/EVRYD ) );
66 E.set(10.,"cm^-1");
67 CHECK( fp_equal( E.Ryd(), 10./RYD_INF ) );
68 E.set(10.,"cm");
69 CHECK( fp_equal( E.Ryd(), RYDLAM/1.e9 ) );
70 E.set(10.,"mm");
71 CHECK( fp_equal( E.Ryd(), RYDLAM/1.e8 ) );
72 E.set(10.,"um");
73 CHECK( fp_equal( E.Ryd(), RYDLAM/1.e5 ) );
74 E.set(10.,"nm");
75 CHECK( fp_equal( E.Ryd(), RYDLAM/1.e2 ) );
76 E.set(10.,"A");
77 CHECK( fp_equal( E.Ryd(), RYDLAM/10. ) );
78 E.set(10.,"Hz");
79 CHECK( fp_equal( E.Ryd(), 10./FR1RYD ) );
80 E.set(10.,"kHz");
81 CHECK( fp_equal( E.Ryd(), 1.e4/FR1RYD ) );
82 E.set(10.,"MHz");
83 CHECK( fp_equal( E.Ryd(), 1.e7/FR1RYD ) );
84 E.set(10.,"GHz");
85 CHECK( fp_equal( E.Ryd(), 1.e10/FR1RYD ) );
86 E.set(10.,"K");
87 CHECK( fp_equal( E.Ryd(), 10./TE1RYD ) );
88 }
89
90 TEST(TestEnergyGet)
91 {
92 Energy E( 1. );
93 CHECK( fp_equal( E.get("Ryd"), 1. ) );
94 CHECK( fp_equal( E.get("erg"), EN1RYD ) );
95 CHECK( fp_equal( E.get("eV"), EVRYD ) );
96 CHECK( fp_equal( E.get("keV"), EVRYD/1.e3 ) );
97 CHECK( fp_equal( E.get("MeV"), EVRYD/1.e6 ) );
98 CHECK( fp_equal( E.get("cm^-1"), RYD_INF ) );
99 CHECK( fp_equal( E.get("cm"), RYDLAM/1.e8 ) );
100 CHECK( fp_equal( E.get("mm"), RYDLAM/1.e7 ) );
101 CHECK( fp_equal( E.get("um"), RYDLAM/1.e4 ) );
102 CHECK( fp_equal( E.get("nm"), RYDLAM/1.e1 ) );
103 CHECK( fp_equal( E.get("A"), RYDLAM ) );
104 CHECK( fp_equal( E.get("Hz"), FR1RYD ) );
105 CHECK( fp_equal( E.get("kHz"), FR1RYD/1.e3 ) );
106 CHECK( fp_equal( E.get("MHz"), FR1RYD/1.e6 ) );
107 CHECK( fp_equal( E.get("GHz"), FR1RYD/1.e9 ) );
108 CHECK( fp_equal( E.get("K"), TE1RYD ) );
109 }
110
111 TEST(TestEnergyGet2)
112 {
113 Energy E( 1. );
114 CHECK( fp_equal( E.Ryd(), 1. ) );
115 CHECK( fp_equal( E.Erg(), EN1RYD ) );
116 CHECK( fp_equal( E.eV(), EVRYD ) );
117 CHECK( fp_equal( E.keV(), EVRYD/1.e3 ) );
118 CHECK( fp_equal( E.MeV(), EVRYD/1.e6 ) );
119 CHECK( fp_equal( E.WN(), RYD_INF ) );
120 CHECK( fp_equal( E.cm(), RYDLAM/1.e8 ) );
121 CHECK( fp_equal( E.mm(), RYDLAM/1.e7 ) );
122 CHECK( fp_equal( E.micron(), RYDLAM/1.e4 ) );
123 CHECK( fp_equal( E.nm(), RYDLAM/1.e1 ) );
124 CHECK( fp_equal( E.Angstrom(), RYDLAM ) );
125 CHECK( fp_equal( E.Hz(), FR1RYD ) );
126 CHECK( fp_equal( E.kHz(), FR1RYD/1.e3 ) );
127 CHECK( fp_equal( E.MHz(), FR1RYD/1.e6 ) );
128 CHECK( fp_equal( E.GHz(), FR1RYD/1.e9 ) );
129 CHECK( fp_equal( E.K(), TE1RYD ) );
130 }
131
132 TEST(TestEnergyUnitConversion)
133 {
134 Energy E( 10. );
135 CHECK( fp_equal( E.get( StandardEnergyUnit(" RYDBERG ") ), 10. ) );
136 CHECK( fp_equal( E.get( StandardEnergyUnit(" ERG ")), 10.*EN1RYD ) );
137 CHECK( fp_equal( E.get( StandardEnergyUnit(" EV ") ), 10.*EVRYD ) );
138 CHECK( fp_equal( E.get( StandardEnergyUnit(" KEV ") ), EVRYD/1.e2 ) );
139 CHECK( fp_equal( E.get( StandardEnergyUnit(" MEV ") ), EVRYD/1.e5 ) );
140 CHECK( fp_equal( E.get( StandardEnergyUnit(" WAVENUMBERS ") ), 10.*RYD_INF ) );
141 CHECK( fp_equal( E.get( StandardEnergyUnit(" CM ") ), RYDLAM/1.e9 ) );
142 CHECK( fp_equal( E.get( StandardEnergyUnit(" CENTIMETER ") ), RYDLAM/1.e9 ) );
143 CHECK( fp_equal( E.get( StandardEnergyUnit(" MM ") ), RYDLAM/1.e8 ) );
144 CHECK( fp_equal( E.get( StandardEnergyUnit(" MICRON ") ), RYDLAM/1.e5 ) );
145 CHECK( fp_equal( E.get( StandardEnergyUnit(" NM ") ), RYDLAM/1.e2 ) );
146 CHECK( fp_equal( E.get( StandardEnergyUnit(" ANGSTROM ") ), RYDLAM/10. ) );
147 CHECK( fp_equal( E.get( StandardEnergyUnit(" HZ ") ), 10.*FR1RYD ) );
148 CHECK( fp_equal( E.get( StandardEnergyUnit(" KHZ ") ), FR1RYD/1.e2 ) );
149 CHECK( fp_equal( E.get( StandardEnergyUnit(" MHZ ") ), FR1RYD/1.e5 ) );
150 CHECK( fp_equal( E.get( StandardEnergyUnit(" GHZ ") ), FR1RYD/1.e8 ) );
151 CHECK( fp_equal( E.get( StandardEnergyUnit(" K ") ), 10.*TE1RYD ) );
152 CHECK( fp_equal( E.get( StandardEnergyUnit(" KELVIN ") ), 10.*TE1RYD ) );
153 }
154
155}
bool fp_equal(sys_float x, sys_float y, int n=3)
Definition cddefines.h:812
Definition energy.h:8
double GHz() const
Definition energy.h:66
double mm() const
Definition energy.h:82
double MHz() const
Definition energy.h:62
double MeV() const
Definition energy.h:50
double get(const char *unit) const
Definition energy.cpp:141
double Ryd() const
Definition energy.h:26
double Angstrom() const
Definition energy.h:70
double nm() const
Definition energy.h:74
double WN() const
Definition energy.h:38
double cm() const
Definition energy.h:86
double Hz() const
Definition energy.h:54
double kHz() const
Definition energy.h:58
double keV() const
Definition energy.h:46
double micron() const
Definition energy.h:78
double K() const
Definition energy.h:30
double Erg() const
Definition energy.h:34
void set(double energy)
Definition energy.h:19
double eV() const
Definition energy.h:42
const char * StandardEnergyUnit(const char *chCard)
Definition energy.cpp:47
UNUSED const double FR1RYD
Definition physconst.h:195
UNUSED const double RYD_INF
Definition physconst.h:115
UNUSED const double EN1RYD
Definition physconst.h:179
UNUSED const double EVRYD
Definition physconst.h:189
UNUSED const double TE1RYD
Definition physconst.h:183
UNUSED const double RYDLAM
Definition physconst.h:176