Skip to content

divraz/Qualean

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Qualean

  • Inspired by Boolean + Quantum concepts.
  • We can assign it only 3 possible real states. True, False, and Maybe (1, 0, -1).
  • But it internally picks an imaginary state, an imaginary number random.uniform(-1, 1).
  • It multiplies real number with imaginary number and stores that 'magic' number internally after using Bankers rounding to 10th decimal place.

Functions

  • add(self, value)
    • It will add a qualean to another qualean.
    • It also supports addition of qualean to another data type like int, float or decimal
  • and(self, value)
    • Checks wether both are qualean data types and both are not zero
  • or(self, value)
    • Checks wether one of the two are qualean data types and not zero
  • bool(self)
    • Converts the qualean to bool
    • False is qualean is 0 else True
  • eq(self, value)
    • Checks if value of the qualean object is equal to value
    • value can be int, float, bool or decimal
  • float(self)
    • Converts qualean to float
    • example, type (float (qualean (1))) = 'float'
  • ge(self, value)
    • Return self>=value.
  • gt(self, value)
    • Return self>value.
  • invert(self)
    • Return (-1) * self
  • le(self, value)
    • Return self<=value.
  • lt(self, value)
    • Return self<value.
  • mul(self, value)
    • Return self * value
  • repr(self)
    • Return repr(self).
  • sqrt(self)
    • Return math.sqrt (self)
  • str(self)
    • Return str(self).
  • magic_number(self)
    • It multiplies the real with imaginary number.
    • It uses python math.round function which internally uses banker's algorithm for rounding.

Data descriptors

  • imag
    • The randomly generated imaginary number
  • qual
    • The qualean number
  • real
    • The real number as per input

Tests

  • test_qualean_values
    • This will test if the class throws ValueError if number other than -1, 0 or 1 is given.
  • test_bankers_rounding
    • Test if the final number has 10 decimal places
  • test_float_conversion
    • Test if qualean data type is successfully converted to float
  • test_n_times_addition
    • q + q + q ... 100 times = 100 * q
  • test_sqrt_func
    • q.sqrt() = Decimal(q).sqrt ()
  • test_one_million_qs_add
    • sum of 1 million different qs is very close to zero
  • test_one_million_qs_mul
    • multiplication of 1 million different qs is very close to zero
  • test_bool_False
    • qualean (0) should be False
  • test_bool_True
    • qualean (-1) should be True
  • test_and_False
    • q1 and q2 returns False when q2 is not defined as well and q1 is False
  • test_and_True
    • q1 and q2 returns True when q1 and q2 is defined and q1 and q2 both are True
  • test_or_True
    • q1 or q2 returns True when q1 and q2 are defined and q1 and q2 are not false
  • test_or_True
    • q1 or q2 returns True when q1 is not defined as well and q2 is not false
  • test_or_False
    • q1 is False and q2 not defined should return True
  • test_invert
    • q + (~q) == 0
  • test_repr
    • r.repr() == f'{num}'
  • test_str
    • r.str() == f'{num}'
  • test_eq
    • q == q should return True
  • test_ge
    • test greater/less than equal to (<=, >=)
  • test_lt
    • test less/greater than (<,>)
  • test_readme_exists
    • readme exists
  • test_readme_contents
    • readme contains more than 100 words
  • test_readme_proper_description
    • all functions definition are present
  • test_readme_file_for_formatting
    • Readme file formatting
  • test_fourspace
    • test PEP8 guidelines for indentation
  • test_function_name_had_cap_letter
    • function should not have capital letters

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages