metrolopy 0.6.5__py3-none-any.whl → 1.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
metrolopy/prefixedunit.py CHANGED
@@ -25,6 +25,7 @@ Classes to automatically generate prefixed units from a base unit.
25
25
  """
26
26
 
27
27
  from .unit import Unit,Conversion
28
+ from .ummy import MFraction
28
29
 
29
30
  class PrefixedUnit(Unit):
30
31
  """PrefixedUnit(name,symbol,conversion=None,short_name=None,
@@ -40,26 +41,26 @@ class PrefixedUnit(Unit):
40
41
  will be generated.
41
42
  """
42
43
  prefix_definitions = {
43
- 'yocto':[1e-24,'y',None,None,None],
44
- 'zepto':[1e-21,'z',None,None,None],
45
- 'atto':[1e-18,'a',None,None,None],
46
- 'femto':[1e-15,'f',None,None,None],
47
- 'pico':[1e-12,'p',None,None,None],
48
- 'nano':[1e-9,'n',None,None,None],
49
- 'micro':[1e-6,'\u03BC','μ',None,'u'],
50
- 'milli':[0.001,'m',None,None,None],
51
- 'centi':[0.01,'c',None,None,None],
52
- 'deci':[0.1,'d',None,None,None],
44
+ 'yocto':[MFraction('1e-24'),'y',None,None,None],
45
+ 'zepto':[MFraction('1e-21'),'z',None,None,None],
46
+ 'atto':[MFraction('1e-18'),'a',None,None,None],
47
+ 'femto':[MFraction('1e-15'),'f',None,None,None],
48
+ 'pico':[MFraction('1e-12'),'p',None,None,None],
49
+ 'nano':[MFraction('1e-9'),'n',None,None,None],
50
+ 'micro':[MFraction('1e-6'),'\u03BC','μ',None,'u'],
51
+ 'milli':[MFraction('0.001'),'m',None,None,None],
52
+ 'centi':[MFraction('0.01'),'c',None,None,None],
53
+ 'deci':[MFraction('0.1'),'d',None,None,None],
53
54
  'deca':[10,'da',None,None,None],
54
55
  'hecto':[100,'h',None,None,None],
55
56
  'kilo':[1000,'k',None,None,None],
56
57
  'mega':[1000000,'M',None,None,None],
57
- 'giga':[1e9,'G',None,None,None],
58
- 'tera':[1e12,'T',None,None,None],
59
- 'peta':[1e15,'P',None,None,None],
60
- 'exa':[1e18,'E',None,None,None],
61
- 'zetta':[1e21,'Z',None,None,None],
62
- 'yotta':[1e24,'Y',None,None,None],
58
+ 'giga':[1000000000,'G',None,None,None],
59
+ 'tera':[1000000000000,'T',None,None,None],
60
+ 'peta':[1000000000000000,'P',None,None,None],
61
+ 'exa': [1000000000000000000,'E',None,None,None],
62
+ 'zetta':[MFraction('1e21'),'Z',None,None,None],
63
+ 'yotta':[MFraction('1e24'),'Y',None,None,None],
63
64
  }
64
65
 
65
66
  @staticmethod
@@ -223,13 +224,13 @@ class BinaryPrefixedUnit(PrefixedUnit):
223
224
  """
224
225
  prefix_definitions = {
225
226
  'kilo':[1000,'k',None,None,None],
226
- 'mega':[1e6,'M',None,None,None],
227
- 'giga':[1e9,'G',None,None,None],
228
- 'tera':[1e12,'T',None,None,None],
229
- 'peta':[1e15,'P',None,None,None],
230
- 'exa':[1e18,'E',None,None,None],
231
- 'zetta':[1e21,'Z',None,None,None],
232
- 'yotta':[1e24,'Y',None,None,None],
227
+ 'mega':[1000000,'M',None,None,None],
228
+ 'giga':[1000000000,'G',None,None,None],
229
+ 'tera':[1000000000000,'T',None,None,None],
230
+ 'peta':[1000000000000000,'P',None,None,None],
231
+ 'exa':[1000000000000000000,'E',None,None,None],
232
+ 'zetta':[MFraction('1e21'),'Z',None,None,None],
233
+ 'yotta':[MFraction('1e24'),'Y',None,None,None],
233
234
  'kibi':[1024,'Ki',None,None,None],
234
235
  'mebi':[1024**2,'Mi',None,None,None],
235
236
  'gibi':[1024**3,'Gi',None,None,None],
metrolopy/relunits.py CHANGED
@@ -24,8 +24,7 @@
24
24
  This module is loaded by the gummy.units module and is not intended be be
25
25
  imported directly. Dimensionless units are defined here.
26
26
  """
27
- from .unit import Unit,Conversion,one
28
- from .ummy import MFraction
27
+ from .unit import Unit,Conversion,one,MFraction
29
28
 
30
29
  class RatioUnit(Unit):
31
30
  """RatioUnit is used for dimensionless units like % where powers, e.g. %**2,
metrolopy/siunits.py CHANGED
@@ -28,8 +28,8 @@ The most of the units here are from the SI Brochure, 9th edition.
28
28
  """
29
29
 
30
30
  from numpy import pi
31
- from .ummy import ummy,MFraction
32
- from .unit import Conversion,Unit
31
+ from .ummy import ummy
32
+ from .unit import Conversion,Unit,MFraction
33
33
  from .prefixedunit import PrefixedUnit
34
34
  from .offsetunit import OffsetUnit,OffsetConversion
35
35
 
@@ -112,8 +112,9 @@ with Unit._builtin():
112
112
  _degC = OffsetUnit('degree Celsius','\u00B0C',OffsetConversion(_K,273.15),
113
113
  latex_symbol='^{\\circ}C',ascii_symbol = 'degC',add_symbol=True,order=0,
114
114
  description='unit of temperature')
115
- Unit.alias('degree C',_degC)
116
- Unit.alias('deg C',_degC)
115
+ Unit.alias('degreeC',_degC)
116
+ Unit.alias('degree-C',_degC)
117
+ Unit.alias('deg-C',_degC)
117
118
 
118
119
  _lm = PrefixedUnit('lumen','lm',Conversion(_cd*_sr,1),add_symbol=True,order=0,
119
120
  description='SI derived unit for luminous flux')
@@ -151,4 +152,5 @@ with Unit._builtin():
151
152
  prefixes=['centi','deci','deca','hecto','kilo','mega',
152
153
  'giga','tera','peta','exa','zetta','yotta'],
153
154
  description='unit of mass')
154
- Unit.alias('metric ton',_tonne)
155
+ Unit.alias('metric ton',_tonne)
156
+ Unit.alias('metric-ton',_tonne)
@@ -1,8 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
- from .test_create import *
4
- from .test_operations import *
5
- from .test_ubreakdown import *
6
- from .test_complex import *
7
- from .test_misc import *
8
- from .test_gummy import *
3
+ from .test_create import TestCreate
4
+ from .test_operations import TestOperations
5
+ from .test_ubreakdown import TestUbreakdown
6
+ from .test_complex import TestComplex
7
+ from .test_misc import TestMisc
8
+ from .test_gummy import TestGummy
@@ -78,6 +78,10 @@ def make_immy(prnt=False):
78
78
 
79
79
 
80
80
  class TestComplex(unittest.TestCase):
81
+ """
82
+ Tests for the `immy` and `jummy` classes. Basic operations and
83
+ instance creation are tested using random values.
84
+ """
81
85
  def assert_ummy_close(self,u1,u2):
82
86
  self.assertTrue(abs(u1.correlation(u2)) > 1 - 1e-4)
83
87
  u1x = max(u1.x,u1.u,u2.x,u2.u)
@@ -94,6 +98,9 @@ class TestComplex(unittest.TestCase):
94
98
  self.assert_ummy_close(i1.imag,i2.imag)
95
99
 
96
100
  def test_immy_init(self,n=1000,prnt=False):
101
+ """
102
+ Test immy creation using the real,imag,r and phi keywords.
103
+ """
97
104
  for m in range(n):
98
105
  x,xr,xi = make_immy(prnt=prnt)
99
106
 
@@ -175,6 +182,9 @@ class TestComplex(unittest.TestCase):
175
182
  self.assert_immy_close(c,cn)
176
183
 
177
184
  def test_immy_add(self,n=1000,prnt=False):
185
+ """
186
+ Test immy addition.
187
+ """
178
188
  self._test_immy_bop(lambda a,b: a + b,np.add,n,prnt)
179
189
 
180
190
  for m in range(10):
@@ -183,6 +193,9 @@ class TestComplex(unittest.TestCase):
183
193
  self.assertTrue(0 + i == i)
184
194
 
185
195
  def test_immy_sub(self,n=1000,prnt=False):
196
+ """
197
+ Test immy subtraction.
198
+ """
186
199
  self._test_immy_bop(lambda a,b: a - b,np.subtract,n,prnt)
187
200
 
188
201
  for m in range(10):
@@ -191,6 +204,9 @@ class TestComplex(unittest.TestCase):
191
204
  self.assertTrue(0 - i == -i)
192
205
 
193
206
  def test_immy_mul(self,n=1000,prnt=False):
207
+ """
208
+ Test immy multiplication.
209
+ """
194
210
  self._test_immy_bop(lambda a,b: a*b,np.multiply,n,prnt)
195
211
 
196
212
  for m in range(10):
@@ -203,6 +219,9 @@ class TestComplex(unittest.TestCase):
203
219
  self.assertTrue(immy(1)*i == i)
204
220
 
205
221
  def test_immy_div(self,n=1000,prnt=False):
222
+ """
223
+ Test immy division.
224
+ """
206
225
  self._test_immy_bop(lambda a,b: a/b,np.divide,n,prnt,allow_small=False)
207
226
 
208
227
  for m in range(10):
@@ -210,6 +229,9 @@ class TestComplex(unittest.TestCase):
210
229
  self.assertTrue(i/1 == i)
211
230
 
212
231
  def test_immy_pow(self,n=1000,prnt=False):
232
+ """
233
+ Test immy exponentiation.
234
+ """
213
235
  #_test_immy_bop(lambda a,b: a**b,np.power,n,prnt,allow_small=False)
214
236
 
215
237
  for m in range(10):
@@ -9,6 +9,9 @@ from metrolopy.tests.common import rand,display
9
9
 
10
10
  class TestCreate(unittest.TestCase):
11
11
  def test_gummy_init(self,n=None,exception_on_warning=True,prnt=False,plot=False):
12
+ """
13
+ Test gummy creation.
14
+ """
12
15
  try:
13
16
  from scipy.stats import norm, t
14
17
 
@@ -161,8 +164,8 @@ class TestCreate(unittest.TestCase):
161
164
 
162
165
  if rand.randint(10) == 0:
163
166
  n = rand.randint(12)
164
- if bayesian and n > 0:
165
- dof = float('inf')
167
+ #if bayesian and n > 0:
168
+ # dof = float('inf')
166
169
  if n == 0:
167
170
  nm = g.name
168
171
  g = uc.gummy(g)
@@ -292,10 +295,11 @@ class TestCreate(unittest.TestCase):
292
295
 
293
296
  self.assertTrue((g.x - x)/u < 1e-6)
294
297
 
295
- if dof == float('inf'):
296
- self.assertTrue(g.dof == float('inf'))
297
- else:
298
- self.assertTrue((g.dof - dof)/dof < 1e-6)
298
+ if not uc.gummy.bayesian:
299
+ if dof == float('inf'):
300
+ self.assertTrue(g.dof == float('inf'))
301
+ else:
302
+ self.assertTrue((g.dof - dof)/dof < 1e-6)
299
303
 
300
304
  if uunit is not None and uunit != unit:
301
305
  self.assertTrue(g.uunit is uc.Unit.unit(uunit))
@@ -28,6 +28,9 @@ import numpy as np
28
28
  import unittest
29
29
 
30
30
  class TestGummy(unittest.TestCase):
31
+ """
32
+ Various unit tests of gummy properties and methods.
33
+ """
31
34
  def test_ku(self):
32
35
  from metrolopy.gummy import _ku
33
36
  from decimal import Decimal
@@ -35,19 +38,11 @@ class TestGummy(unittest.TestCase):
35
38
  self.assertTrue(_ku(2.1,3.3) == 2.1*3.3)
36
39
  self.assertTrue(_ku(2.1,Decimal(3.3)) == Decimal(float(2.1))*Decimal(3.3))
37
40
 
38
- def test_lg10(self):
39
- from metrolopy.gummy import _lg10
40
- from mpmath import mpf,log10
41
- from decimal import Decimal
42
- from fractions import Fraction
43
- import math
44
-
45
- self.assertTrue(_lg10(mpf(2.2)) == log10(mpf(2.2)))
46
- self.assertTrue(_lg10(Decimal(2.2)) == Decimal(2.2).log10())
47
- self.assertTrue(_lg10(2.2) == np.log10(2.2))
48
- self.assertTrue(_lg10(Fraction(2,3)) == math.log10(float(Fraction(2,3))))
49
-
50
41
  def test_meta_properties(self):
42
+ """
43
+ Test class properties.
44
+
45
+ """
51
46
  a = uc.gummy.cimethod
52
47
  self.assertTrue(isinstance(a,str))
53
48
  uc.gummy.cimethod = 'symmetric'
@@ -135,6 +130,9 @@ class TestGummy(unittest.TestCase):
135
130
  uc.gummy.thousand_spaces = ts
136
131
 
137
132
  def test_init(self):
133
+ """
134
+ Test gummy creation
135
+ """
138
136
  g = uc.gummy(1.2,3.4)
139
137
  self.assertTrue(g.x == 1.2)
140
138
  self.assertTrue(g.u == 3.4)
@@ -217,7 +215,7 @@ class TestGummy(unittest.TestCase):
217
215
  try:
218
216
  uc.gummy(3.3,1.3,unit='%',uunit='m')
219
217
  self.assertTrue(False)
220
- except uc.NoUnitConversionFoundError:
218
+ except uc.IncompatibleUnitsError:
221
219
  pass
222
220
 
223
221
  gg = uc.gummy(3.3,1.4,unit='%',uunit=uc.one)
@@ -235,6 +233,9 @@ class TestGummy(unittest.TestCase):
235
233
  self.assertTrue(gg.name == 'def')
236
234
 
237
235
  def test_U(self):
236
+ """
237
+ Test expanded uncertainty.
238
+ """
238
239
  a = uc.gummy(1.1,2.2)
239
240
  self.assertTrue(a.U == 2.2)
240
241
  b = uc.gummy(3,4.4)
@@ -252,7 +253,10 @@ class TestGummy(unittest.TestCase):
252
253
  self.assertTrue(abs(c.U[1] - 4.4*1.1/3**2) < 1e-12)
253
254
 
254
255
  def test_set_U(self):
255
- g = uc.gummy(1,1,k=2,unit='cm',uunit='mm')
256
+ """
257
+ Additional tests for expanded uncertainty.
258
+ """
259
+ g = uc.gummy(1.0,1.0,k=2,unit='cm',uunit='mm')
256
260
  self.assertTrue(g.U == 1)
257
261
  self.assertTrue(g.uunit is uc.unit('mm'))
258
262
  g.unit = 'm'
@@ -266,6 +270,9 @@ class TestGummy(unittest.TestCase):
266
270
  self.assertTrue(c.U[1] == 4.4)
267
271
 
268
272
  def test_iset_U(self):
273
+ """
274
+ Additional tests for expanded uncertainty.
275
+ """
269
276
  g = uc.gummy(1)
270
277
  self.assertTrue(g._iset_U() == 0)
271
278
  self.assertTrue(g._iset_U(unit='m').unit is uc.unit('m'))
@@ -285,7 +292,7 @@ class TestGummy(unittest.TestCase):
285
292
  try:
286
293
  self.assertTrue(g._iset_U(unit='kg'))
287
294
  self.assertTrue(False)
288
- except uc.NoUnitConversionFoundError:
295
+ except uc.IncompatibleUnitsError:
289
296
  pass
290
297
 
291
298
  g = uc.gummy(0,1,unit='m')
@@ -296,6 +303,9 @@ class TestGummy(unittest.TestCase):
296
303
  self.assertTrue(g._iset_U(k=2) == 2)
297
304
 
298
305
  def test_Usim(self):
306
+ """
307
+ Test the gummy.Usim property
308
+ """
299
309
  g = uc.gummy(-8.5,1,unit='m')
300
310
  g.sim()
301
311
  self.assertTrue(abs(g.Usim[0] - 1) < 0.5)
@@ -364,16 +374,25 @@ class TestGummy(unittest.TestCase):
364
374
  self.assertTrue(g.simsorted[i+1] >= g.simsorted[i])
365
375
 
366
376
  def test_distribution(self):
377
+ """
378
+ Test gummy.distribution
379
+ """
367
380
  g = uc.gummy(1,1)
368
381
  self.assertTrue(isinstance(g.distribution,uc.Distribution))
369
382
 
370
383
  def test_ksim(self):
384
+ """
385
+ Test gummy.ksim
386
+ """
371
387
  g = uc.gummy(1,1)
372
388
  g.p = 0.9545
373
389
  g.sim()
374
390
  self.assertTrue(abs(g.ksim - 2) < 0.1)
375
391
 
376
392
  def test_independent(self):
393
+ """
394
+ Test gummy.independant
395
+ """
377
396
  a = uc.gummy(1,1)
378
397
  b = uc.gummy(-2,2)
379
398
  c = a + b
@@ -383,6 +402,9 @@ class TestGummy(unittest.TestCase):
383
402
  self.assertTrue(not d.independent)
384
403
 
385
404
  def test_name(self):
405
+ """
406
+ Test setting and getting gummy.name
407
+ """
386
408
  g = uc.gummy(1,1)
387
409
  self.assertTrue(g.name is None)
388
410
  g.name = 'abc'
@@ -427,6 +449,9 @@ class TestGummy(unittest.TestCase):
427
449
  pass
428
450
 
429
451
  def test_unit(self):
452
+ """
453
+ Test setting and getting gummy.unit
454
+ """
430
455
  g = uc.gummy(1,1,unit='m')
431
456
  self.assertTrue(g.unit is uc.unit('m'))
432
457
  self.assertTrue(str(g.unit) == 'm')
@@ -440,6 +465,9 @@ class TestGummy(unittest.TestCase):
440
465
  self.assertTrue(g.u == 1000)
441
466
 
442
467
  def test_uunit(self):
468
+ """
469
+ Test setting and getting gummy.uunit
470
+ """
443
471
  g = uc.gummy(1,1)
444
472
  self.assertTrue(g.uunit is None)
445
473
  g = uc.gummy(1,1,unit='m',uunit='cm')
@@ -458,6 +486,9 @@ class TestGummy(unittest.TestCase):
458
486
  self.assertTrue(g.uunit is None)
459
487
 
460
488
  def test_uunit_is_rel(self):
489
+ """
490
+ Test gummy.uunit_is_rel
491
+ """
461
492
  g = uc.gummy(1,1)
462
493
  self.assertTrue(not g.uunit_is_rel)
463
494
  g.uunit='%'
@@ -471,6 +502,9 @@ class TestGummy(unittest.TestCase):
471
502
  self.assertTrue(g.uunit_is_rel)
472
503
 
473
504
  def test_k(self):
505
+ """
506
+ Test setting and getting gummy.k
507
+ """
474
508
  g = uc.gummy(1)
475
509
  self.assertTrue(g.k is None)
476
510
 
@@ -491,6 +525,9 @@ class TestGummy(unittest.TestCase):
491
525
  self.assertTrue(abs(g.k - 1.96) < 0.01)
492
526
 
493
527
  def test_p(self):
528
+ """
529
+ Test setting and getting gummy.p
530
+ """
494
531
  uc.gummy.p_method = None
495
532
  g = uc.gummy(1,1)
496
533
  g.p = 0.95
@@ -510,6 +547,9 @@ class TestGummy(unittest.TestCase):
510
547
  pass
511
548
 
512
549
  def test_correlation(self):
550
+ """
551
+ Test gummy.correlation
552
+ """
513
553
  a = uc.gummy(1,1)
514
554
  b = uc.gummy(1,2)
515
555
  c = a + b
@@ -522,6 +562,9 @@ class TestGummy(unittest.TestCase):
522
562
  self.assertTrue(a.correlation(a) == 1)
523
563
 
524
564
  def test_covariance(self):
565
+ """
566
+ Test gummy.covariance
567
+ """
525
568
  a = uc.gummy(1,1)
526
569
  b = uc.gummy(1,2)
527
570
  c = a + b
@@ -534,33 +577,10 @@ class TestGummy(unittest.TestCase):
534
577
  self.assertTrue(a.covariance(a) == 1)
535
578
  self.assertTrue(b.covariance(b) == 4)
536
579
 
537
- def test_correlation_matrix(self):
538
- a = uc.gummy(1,1)
539
- b = uc.gummy(1,2)
540
- c = a + b
541
- m = uc.gummy.correlation_matrix([a,b,c])
542
- self.assertTrue(m[0][0] == m[1][1] == m[2,2] == 1)
543
- self.assertTrue(m[0][1] == m[1][0] == 0)
544
- self.assertTrue(abs(m[2][0] - 1/c.u) < 1e-4)
545
- self.assertTrue(abs(m[0][2] - 1/c.u) < 1e-4)
546
- self.assertTrue(abs(m[2][1] - 2/c.u) < 1e-4)
547
- self.assertTrue(abs(m[1][2] - 2/c.u) < 1e-4)
548
-
549
- def test_covariance_matrix(self):
550
- a = uc.gummy(1,1)
551
- b = uc.gummy(1,2)
552
- c = a + b
553
- m = uc.gummy.covariance_matrix([a,b,c])
554
- self.assertTrue(m[0][0] == 1)
555
- self.assertTrue(m[1][1] == 4)
556
- self.assertTrue(abs(m[2][2] - 5) < 1e-4)
557
- self.assertTrue(m[0][1] == m[1][0] == 0)
558
- self.assertTrue(abs(m[2][0] - 1) < 1e-4)
559
- self.assertTrue(abs(m[0][2] - 1) < 1e-4)
560
- self.assertTrue(abs(m[2][1] - 4) < 1e-4)
561
- self.assertTrue(abs(m[1][2] - 4) < 1e-4)
562
-
563
580
  def test_correlation_sim(self):
581
+ """
582
+ Test gummy.correlation_sim
583
+ """
564
584
  a = uc.gummy(1,1)
565
585
  b = uc.gummy(1,2)
566
586
  c = a + b
@@ -573,6 +593,9 @@ class TestGummy(unittest.TestCase):
573
593
  self.assertTrue(abs(a.correlation_sim(a) - 1) < 1e-6)
574
594
 
575
595
  def test_covariance_sim(self):
596
+ """
597
+ Test gummy.covariance_sim
598
+ """
576
599
  a = uc.gummy(1,1)
577
600
  b = uc.gummy(1,2)
578
601
  c = a + b
@@ -586,6 +609,9 @@ class TestGummy(unittest.TestCase):
586
609
  self.assertTrue(abs(b.covariance_sim(b) - 4) < 1e-1)
587
610
 
588
611
  def test_correlation_matrix(self):
612
+ """
613
+ Test gummy.correlation_matrix
614
+ """
589
615
  a = uc.gummy(1,1)
590
616
  b = uc.gummy(1,2)
591
617
  c = a + b
@@ -602,6 +628,9 @@ class TestGummy(unittest.TestCase):
602
628
  self.assertTrue((m[1][2] - 2/c.u) < 1e-1)
603
629
 
604
630
  def test_covariance_matrix(self):
631
+ """
632
+ Test gummy.covariance_matrix
633
+ """
605
634
  a = uc.gummy(1,1)
606
635
  b = uc.gummy(1,2)
607
636
  c = a + b
@@ -618,10 +647,16 @@ class TestGummy(unittest.TestCase):
618
647
  self.assertTrue((m[1][2] - 4) < 1e-1)
619
648
 
620
649
  def test_finfo(self):
650
+ """
651
+ Test gummy.finfo
652
+ """
621
653
  a = uc.gummy(1,1)
622
654
  self.assertTrue(a.finfo.rel_u == 0)
623
655
 
624
656
  def test_real(self):
657
+ """
658
+ Test gummy.real
659
+ """
625
660
  a = uc.gummy(1.1,0.3)
626
661
  b = a.real
627
662
  self.assertTrue(not a is b)
@@ -630,6 +665,9 @@ class TestGummy(unittest.TestCase):
630
665
  self.assertTrue(a.correlation(b) == 1)
631
666
 
632
667
  def test_conjugate(self):
668
+ """
669
+ Test gummy.conjugate
670
+ """
633
671
  a = uc.gummy(1.1,0.3)
634
672
  b = a.conjugate()
635
673
  self.assertTrue(not a is b)
@@ -638,26 +676,38 @@ class TestGummy(unittest.TestCase):
638
676
  self.assertTrue(a.correlation(b) == 1)
639
677
 
640
678
  def test_angle(self):
679
+ """
680
+ Test gummy.angle
681
+ """
641
682
  self.assertTrue(uc.gummy(1.1,0.3).angle() == 0)
642
683
  self.assertTrue(abs(abs(uc.gummy(-1.1,0.3).angle()) - np.pi) < 1e-10)
643
684
 
644
685
  def test_utype(self):
686
+ """
687
+ Test gummy.utype
688
+ """
645
689
  a = uc.gummy(1.2,1,1,utype='A')
646
690
  self.assertTrue(a.utype == 'A')
647
691
  b = uc.gummy(1.2,1,1,utype='xyz')
648
692
  self.assertTrue(b.utype == 'xyz')
649
693
 
650
694
  def test_ufrom(self):
695
+ """
696
+ Test gummy.ufrom
697
+ """
651
698
  a = uc.gummy(1.2,0.2,utype='A')
652
699
  b = uc.gummy(3.2,0.5,utype='A')
653
700
  c = uc.gummy(0.9,0.2,utype='B')
654
701
  d = a + b + c
655
702
  self.assertTrue(abs(d.ufrom('A') - np.sqrt(0.2**2+0.5**2)) < 1e-8)
656
- uc.gummy.simulate([d,'A'])
657
- self.assertTrue(abs(d.ufrom('A',sim=True) - np.sqrt(0.2**2+0.5**2)) < 1e-2)
703
+ uc.gummy.simulate([d,b])
704
+ self.assertTrue(abs(d.ufromsim('A') - np.sqrt(0.2**2+0.5**2)) < 1e-2)
658
705
  self.assertTrue(d.ufrom(c) == 0.2)
659
706
 
660
707
  def test_dof_from(self):
708
+ """
709
+ Test gummy.doffrom
710
+ """
661
711
  a = uc.gummy(1.2,0.2,dof=5,utype='A')
662
712
  b = uc.gummy(3.2,0.5,dof=7,utype='A')
663
713
  c = uc.gummy(0.9,0.2,utype='B')
@@ -29,7 +29,9 @@ import unittest
29
29
 
30
30
 
31
31
  class TestMisc(unittest.TestCase):
32
-
32
+ """
33
+ Miscellaneaus tests.
34
+ """
33
35
  def test_reduce(self):
34
36
  a = uc.gummy(12.367,0.22,unit='mm/m')
35
37
  a.reduce_unit()
@@ -103,6 +105,7 @@ class TestMisc(unittest.TestCase):
103
105
  return t.ppf(1-(1-con)/2, len(x)-1)*x.std(ddof=1)/np.sqrt(len(x))
104
106
 
105
107
  x = np.random.rand(5)
108
+ uc.gummy.bayesian = False
106
109
  g = uc.mean(x)
107
110
  g.p = 'ssd'
108
111
  self.assertTrue(abs(con-g.p) < 1e-6)