DSPython  00.03.03 — 25 juin 2012
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
__init__.py
Aller à la documentation de ce fichier.
1 #!/usr/bin/env python
2 # -*- coding: latin-1 -*-
3 ##\package DSPython Paquetage DSPython : opérations arithmétiques et alentours
4 
5 ##\file
6 # Paquetage DSPython : opérations arithmétiques et alentours
7 
8 # (c) Olivier Pirson --- DragonSoft
9 # http://www.opimedia.be/DS/
10 # Débuté le 29 décembre 2006
11 ####################################
12 from __future__ import print_function
13 
14 ## Date du dernier changement du paquetage DSPython
15 VERSION = 'DSPython --- 00.03.03 --- 2012 June 25'
16 
17 import numbers
18 
19 if __debug__:
20  import sys
21 
22  assert sys.version_info[:2] >= (2, 6), \
23  ('DSPython require Python 2.6 or better (*work on Python 3*)', sys.version)
24 
25 
26 
27 ## \mainpage DSPython
28 #
29 # <div align="center">
30 # <b>Paquetage d&rsquo;opérations arithmétiques et alentours</b>\n
31 # \htmlonly
32 # <a class="net" href="http://www.opimedia.be/DS/" target="_blank"><img
33 # src="DragonSoft_t.png" border="0" alt="DragonSoft" /></a>
34 # \endhtmlonly
35 # </div>
36 #
37 # <div style="margin-top:1ex"><p>
38 # Nécessite <a class="net" href="http://www.python.org/" target="_blank">Python</a>
39 # 2.6 ou plus récent.
40 # <b>Fonctionne avec Python 3</b>.
41 # </p><p>
42 # <a class="relative" href="README.txt" target="_blank">README</a>
43 # </p><p>
44 # Licence&nbsp;: &copy; Olivier <span style="font-variant:small-caps">Pirson</span>
45 # &ndash;&nbsp;prochainement GPL ou LGPL ou ..?
46 # </p><p>
47 # <a class="relative" href="references.htm" target="_blank">Références</a>
48 # </p></div>
49 #
50 # <div align="right">
51 # &copy; Olivier <span style="font-variant:small-caps">Pirson</span>\n
52 # <a class="mail"
53 # href="mailto:olivier_pirson_opi@yahoo.fr?subject=[DSPython]"><tt>olivier_pirson_opi@yahoo.fr</tt></a>\n
54 # <a class="net"
55 # href="http://www.opimedia.be/DS/" target="_blank"><tt>http://www.opimedia.be/DS/</tt></a>
56 # </div>
57 #
58 # <hr>
59 # <div align="center">
60 # Document généré par\n
61 # \htmlonly
62 # <a class="net" href="http://www.doxygen.org/"
63 # target="_blank"><img src="doxygen.png" border="0" alt="Doxygen" /></a>
64 # \endhtmlonly
65 # </div>
66 #
67 
68 
69 
70 # ############
71 # Constantes #
72 ##############
73 ## Adresse email de DragonSoft dans un string
74 DS_mail = 'olivier_pirson_opi@yahoo.fr'
75 
76 ## Adresse du site web DragonSoft dans un string
77 DS_web = 'http://www.opimedia.be/DS/'
78 
79 
80 
81 # ###########
82 # Fonctions #
83 #############
84 ## n est un entier naturel (Integral >= 0) tenant sur 32 bits (< 2**32) ?
85 def nat32_is(n):
86  """Renvoie True si n est un entier naturel (Integral >= 0) tenant sur 32 bits (< 2**32),
87  False sinon
88 
89  Result: bool
90 
91  O(n) = 1"""
92  return isinstance(n, numbers.Integral) and (4294967295 >= n >= 0)
93 
94 
95 ## n est un entier naturel (Integral >= 0) ?
96 def natural_is(n):
97  """Renvoie True si n est un entier naturel (Integral >= 0),
98  False sinon
99 
100  Result: bool
101 
102  O(n) = 1"""
103  return isinstance(n, numbers.Integral) and (n >= 0)
104 
105 
106 
107 # ######\cond MAINTEST
108 # Main #
109 ########
110 if __name__ == '__main__':
111  def main_test():
112  """Test du paquetage"""
113  import sys
114 
115  import DSPython.debug as debug
116 
117  debug.test_begin(VERSION, __debug__, header='Package ')
118 
119  print('DS_mail ==', repr(DS_mail)); sys.stdout.flush()
120  print('DS_web ==', repr(DS_web)); sys.stdout.flush()
121 
122 
123  print()
124  print('nat32_is()...', end=''); sys.stdout.flush()
125  assert nat32_is(0)
126  assert nat32_is(1)
127  assert nat32_is(2)
128  for k in range(32):
129  assert natural_is(2**k - 1), 2**k - 1
130  assert natural_is(2**k), 2**k
131  assert natural_is(2**k + 1), 2**k + 1
132  assert natural_is(2**32 - 1), 2**32 - 1
133  assert natural_is(int(55))
134  assert nat32_is(False)
135  assert nat32_is(True)
136 
137  assert not nat32_is(-1)
138  assert not nat32_is(2**32)
139  assert not nat32_is(0.0)
140  assert not nat32_is(.1)
141  assert not nat32_is(complex(0, 0))
142  assert not nat32_is(None)
143  print('ok'); sys.stdout.flush()
144 
145 
146  print('natural_is()...', end=''); sys.stdout.flush()
147  assert natural_is(0)
148  assert natural_is(1)
149  assert natural_is(2)
150  for k in range(100):
151  assert natural_is(2**k - 1), 2**k - 1
152  assert natural_is(2**k), 2**k
153  assert natural_is(2**k + 1), 2**k + 1
154  assert natural_is(int(55))
155  assert natural_is(False)
156  assert natural_is(True)
157 
158  assert not natural_is(-1)
159  assert not natural_is(0.0)
160  assert not natural_is(.1)
161  assert not natural_is(complex(0, 0))
162  assert not natural_is(None)
163  print('ok'); sys.stdout.flush()
164  debug.test_end()
165 
166  main_test()
167 ##\endcond MAINTEST