-
-
Save fluency03/a3f6e762cd6b13fe9de99d7277af643c to your computer and use it in GitHub Desktop.
Revisions
-
bhelx revised this gist
Jan 20, 2011 . 1 changed file with 4 additions and 4 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -28,9 +28,9 @@ def true_ord(char): if char.isdigit(): return ord(char) - DIGIT_OFFSET elif 'A' <= char <= 'Z': return ord(char) - UPPERCASE_OFFSET elif 'a' <= char <= 'z': return ord(char) - LOWERCASE_OFFSET else: raise ValueError("%s is not a valid character" % char) @@ -42,9 +42,9 @@ def true_chr(integer): """ if integer < 10: return chr(integer + DIGIT_OFFSET) elif 10 <= integer <= 35: return chr(integer + UPPERCASE_OFFSET) elif 36 <= integer < 62: return chr(integer + LOWERCASE_OFFSET) else: raise ValueError("%d is not a valid integer in the range of base %d" % (integer, BASE)) -
bhelx revised this gist
Jan 14, 2011 . 1 changed file with 69 additions and 71 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,8 +1,8 @@ #!/usr/bin/env python # # Converts any integer into a base [BASE] number. I have chosen 62 # as it is meant to represent the integers using all the alphanumeric # characters, [no special characters] = {0..9}, {A..Z}, {a..z} # # I plan on using this to shorten the representation of possibly long ids, @@ -21,83 +21,81 @@ DIGIT_OFFSET = 48 def true_ord(char): """ Turns a digit [char] in character representation from the number system with base [BASE] into an integer. """ if char.isdigit(): return ord(char) - DIGIT_OFFSET elif char >= 'A' and char <= 'Z': return ord(char) - UPPERCASE_OFFSET elif char >= 'a' and char <= 'z': return ord(char) - LOWERCASE_OFFSET else: raise ValueError("%s is not a valid character" % char) def true_chr(integer): """ Turns an integer [integer] into digit in base [BASE] as a character representation. """ if integer < 10: return chr(integer + DIGIT_OFFSET) elif integer >= 10 and integer <= 35: return chr(integer + UPPERCASE_OFFSET) elif integer >= 36 and integer < 62: return chr(integer + LOWERCASE_OFFSET) else: raise ValueError("%d is not a valid integer in the range of base %d" % (integer, BASE)) def saturate(key): """ Turn the base [BASE] number [key] into an integer """ int_sum = 0 reversed_key = key[::-1] for idx, char in enumerate(reversed_key): int_sum += true_ord(char) * int(math.pow(BASE, idx)) return int_sum def dehydrate(integer): """ Turn an integer [integer] into a base [BASE] number in string representation """ # we won't step into the while if integer is 0 # so we just solve for that case here if integer == 0: return '0' string = "" while integer > 0: remainder = integer % BASE string = true_chr(remainder) + string integer /= BASE return string if __name__ == '__main__': # not really unit tests just a rough check to see if anything is way off if sys.argv[1] == '-tests': passed_tests = True for i in xrange(0, 1000): passed_tests &= (i == saturate(dehydrate(i))) print passed_tests else: user_input = sys.argv[2] try: if sys.argv[1] == '-s': print saturate(user_input) elif sys.argv[1] == '-d': print dehydrate(int(user_input)) else: print "I don't understand option %s" % sys.argv[1] except ValueError as e: print e -
bhelx revised this gist
Jan 14, 2011 . 1 changed file with 57 additions and 57 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,8 +1,8 @@ #!/usr/bin/env python # # Converts any integer into a base [BASE] number. I have chosen 62 # as it is meant to represent the integers using all the alphanumeric # characters, [no special characters] = {0..9}, {A..Z}, {a..z} # # I plan on using this to shorten the representation of possibly long ids, @@ -21,83 +21,83 @@ DIGIT_OFFSET = 48 def true_ord(char): """ Turns a digit [char] in character representation from the number system with base [BASE] into an integer. """ if char.isdigit(): return ord(char) - DIGIT_OFFSET elif char >= 'A' and char <= 'Z': return ord(char) - UPPERCASE_OFFSET elif char >= 'a' and char <= 'z': return ord(char) - LOWERCASE_OFFSET else: raise ValueError("%s is not a valid character" % char) def true_chr(integer): """ Turns an integer [integer] into digit in base [BASE] as a character representation. """ if integer < 10: return chr(integer + DIGIT_OFFSET) elif integer >= 10 and integer <= 35: return chr(integer + UPPERCASE_OFFSET) elif integer >= 36 and integer < 62: return chr(integer + LOWERCASE_OFFSET) else: raise ValueError("%d is not a valid integer in the range of base %d" % (integer, BASE)) def saturate(key): """ Turn the base [BASE] number [key] into an integer """ int_sum = 0 reversed_key = key[::-1] for idx, char in enumerate(reversed_key): int_sum += true_ord(char) * int(math.pow(BASE, idx)) return int_sum def dehydrate(integer): """ Turn an integer [integer] into a base [BASE] number in string representation """ # we won't step into the while if integer is 0 # so we just solve for that case here if integer == 0: return '0' string = "" while integer > 0: remainder = integer % BASE string = true_chr(remainder) + string integer /= BASE return string if __name__ == '__main__': # not really unit tests just a rough check to see if anything is way off if sys.argv[1] == '-tests': passed_tests = True for i in xrange(0, 1000): passed_tests &= (i == saturate(dehydrate(i))) print passed_tests else: user_input = sys.argv[2] try: if sys.argv[1] == '-s': print saturate(user_input) elif sys.argv[1] == '-d': print dehydrate(int(user_input)) else: print "I don't understand option %s" % sys.argv[1] except ValueError as e: print e
-
bhelx revised this gist
Jan 14, 2011 . 1 changed file with 56 additions and 56 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,8 +1,8 @@ #!/usr/bin/env python # # Converts any integer into a base [BASE] number. I have chosen 62 # as it is meant to represent the integers using all the alphanumeric # characters, [no special characters] = {0..9}, {A..Z}, {a..z} # # I plan on using this to shorten the representation of possibly long ids, @@ -21,83 +21,83 @@ DIGIT_OFFSET = 48 def true_ord(char): """ Turns a digit [char] in character representation from the number system with base [BASE] into an integer. """ if char.isdigit(): return ord(char) - DIGIT_OFFSET elif char >= 'A' and char <= 'Z': return ord(char) - UPPERCASE_OFFSET elif char >= 'a' and char <= 'z': return ord(char) - LOWERCASE_OFFSET else: raise ValueError("%s is not a valid character" % char) def true_chr(integer): """ Turns an integer [integer] into digit in base [BASE] as a character representation. """ if integer < 10: return chr(integer + DIGIT_OFFSET) elif integer >= 10 and integer <= 35: return chr(integer + UPPERCASE_OFFSET) elif integer >= 36 and integer < 62: return chr(integer + LOWERCASE_OFFSET) else: raise ValueError("%d is not a valid integer in the range of base %d" % (integer, BASE)) def saturate(key): """ Turn the base [BASE] number [key] into an integer """ int_sum = 0 reversed_key = key[::-1] for idx, char in enumerate(reversed_key): int_sum += true_ord(char) * int(math.pow(BASE, idx)) return int_sum def dehydrate(integer): """ Turn an integer [integer] into a base [BASE] number in string representation """ # we won't step into the while if integer is 0 # so we just solve for that case here if integer == 0: return '0' string = "" while integer > 0: remainder = integer % BASE string = true_chr(remainder) + string integer /= BASE return string if __name__ == '__main__': # not really unit tests just a rough check to see if anything is way off if sys.argv[1] == '-tests': passed_tests = True for i in xrange(0, 1000): passed_tests &= (i == saturate(dehydrate(i))) print passed_tests else: user_input = sys.argv[2] try: if sys.argv[1] == '-s': print saturate(user_input) elif sys.argv[1] == '-d': print dehydrate(int(user_input)) else: print "I don't understand option %s" % sys.argv[1] except ValueError as e: print e -
bhelx revised this gist
Jan 13, 2011 . 1 changed file with 21 additions and 26 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -57,7 +57,7 @@ def saturate(key): int_sum = 0 reversed_key = key[::-1] for idx, char in enumerate(reversed_key): int_sum += true_ord(char) * int(math.pow(BASE, idx)) return int_sum @@ -67,42 +67,37 @@ def dehydrate(integer): in string representation """ # we won't step into the while if integer is 0 # so we just solve for that case here if integer == 0: return '0' string = "" while integer > 0: remainder = integer % BASE string = true_chr(remainder) + string integer /= BASE return string if __name__ == '__main__': # not really unit tests just a rough check to see if anything is way off if sys.argv[1] == '-tests': passed_tests = True for i in xrange(0, 1000): passed_tests &= (i == saturate(dehydrate(i))) print passed_tests else: user_input = sys.argv[2] try: if sys.argv[1] == '-s': print saturate(user_input) elif sys.argv[1] == '-d': print dehydrate(int(user_input)) else: print "I don't understand option %s" % sys.argv[1] except ValueError as e: print e -
bhelx revised this gist
Jan 13, 2011 . 1 changed file with 10 additions and 15 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -92,22 +92,17 @@ def dehydrate(integer): else: user_input = sys.argv[2] try: if sys.argv[1] == '-s': result = saturate(user_input) print result elif sys.argv[1] == '-d': result = dehydrate(int(user_input)) print result else: print "I don't understand option %s" % sys.argv[1] except ValueError as e: print e -
bhelx revised this gist
Jan 13, 2011 . 1 changed file with 4 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -66,6 +66,9 @@ def dehydrate(integer): Turn an integer [integer] into a base [BASE] number in string representation """ # we won't step into the while if integer is 0 # so we just solve for that case here if integer == 0: return '0' @@ -80,7 +83,7 @@ def dehydrate(integer): if __name__ == '__main__': # not really unit tests just a rough check to see if anything is way off if sys.argv[1] == '-tests': passed_tests = True for i in xrange(0, 1000): -
bhelx revised this gist
Jan 13, 2011 . 1 changed file with 9 additions and 9 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -67,15 +67,15 @@ def dehydrate(integer): in string representation """ if integer == 0: return '0' string = "" while integer > 0: remainder = integer % BASE string = true_chr(remainder) + string integer /= BASE return string if __name__ == '__main__': -
bhelx revised this gist
Jan 13, 2011 . 1 changed file with 19 additions and 50 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -11,7 +11,6 @@ # saturate() takes the base 62 key, as a string, and turns it back into an integer # dehydrate() takes an integer and turns it into the base 62 string # import math import sys @@ -55,12 +54,10 @@ def saturate(key): """ Turn the base [BASE] number [key] into an integer """ int_sum = 0 reversed_key = key[::-1] for idx, char in enumerate(reversed_key): int_sum += true_ord(char) * int(math.pow(BASE, idx)) return int_sum @@ -69,7 +66,6 @@ def dehydrate(integer): Turn an integer [integer] into a base [BASE] number in string representation """ if integer == 0: return '0' @@ -83,59 +79,32 @@ def dehydrate(integer): if __name__ == '__main__': if sys.argv[1] == '-tests': passed_tests = True for i in xrange(0, 1000): passed_tests &= i == saturate(dehydrate(i)) print passed_tests else: user_input = sys.argv[2] if sys.argv[1] == '-s': try: result = saturate(user_input) print result except ValueError as e: print e elif sys.argv[1] == '-d': try: result = dehydrate(int(user_input)) print result except ValueError as e: print e else: print "I don't understand option %s" % sys.argv[1] -
bhelx revised this gist
Jan 13, 2011 . 1 changed file with 0 additions and 84 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -64,90 +64,6 @@ def saturate(key): return int_sum def dehydrate(integer): """ Turn an integer [integer] into a base [BASE] number -
bhelx revised this gist
Jan 13, 2011 . 1 changed file with 115 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -82,7 +82,121 @@ def dehydrate(integer): if __name__ == '__main__': #!/usr/bin/env python # # Converts any integer into a base [BASE] number. I have chosen 62 # as it is meant to represent the integers using all the alphanumeric # characters, [no special characters] = {0..9}, {A..Z}, {a..z} # # I plan on using this to shorten the representation of possibly long ids, # a la url shortenters # # saturate() takes the base 62 key, as a string, and turns it back into an integer # dehydrate() takes an integer and turns it into the base 62 string # import math import sys BASE = 62 UPPERCASE_OFFSET = 55 LOWERCASE_OFFSET = 61 DIGIT_OFFSET = 48 def true_ord(char): """ Turns a digit [char] in character representation from the number system with base [BASE] into an integer. """ if char.isdigit(): return ord(char) - DIGIT_OFFSET elif char >= 'A' and char <= 'Z': return ord(char) - UPPERCASE_OFFSET elif char >= 'a' and char <= 'z': return ord(char) - LOWERCASE_OFFSET else: raise ValueError("%s is not a valid character" % char) def true_chr(integer): """ Turns an integer [integer] into digit in base [BASE] as a character representation. """ if integer < 10: return chr(integer + DIGIT_OFFSET) elif integer >= 10 and integer <= 35: return chr(integer + UPPERCASE_OFFSET) elif integer >= 36 and integer < 62: return chr(integer + LOWERCASE_OFFSET) else: raise ValueError("%d is not a valid integer in the range of base %d" % (integer, BASE)) def saturate(key): """ Turn the base [BASE] number [key] into an integer """ idx = 0 int_sum = 0 reversed_key = key[::-1] for char in reversed_key: int_sum += true_ord(char) * int(math.pow(BASE, idx)) idx += 1 return int_sum def dehydrate(integer): """ Turn an integer [integer] into a base [BASE] number in string representation """ # the loop below doesn't work for 0 so let's just check here if integer == 0: return '0' digit = integer string = "" while digit > 0: remainder = digit % BASE string = true_chr(remainder) + string digit /= BASE return string if __name__ == '__main__': # slightly amusing tests # could use more tests if sys.argv[1] == '-tests': passed_tests = True for i in xrange(0, 1000): passed_tests &= i == saturate(dehydrate(i)) print passed_tests user_input = sys.argv[2] if sys.argv[1] == '-s': try: result = saturate(user_input) print result except ValueError as e: print e elif sys.argv[1] == '-d': try: result = dehydrate(int(user_input)) print result except ValueError as e: print e else: print "I don't understand option %s" % sys.argv[1] if sys.argv[1] == '-tests': passed_tests = True for i in xrange(0, 1000): -
bhelx created this gist
Jan 13, 2011 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,111 @@ #!/usr/bin/env python # # Converts any integer into a base [BASE] number. I have chosen 62 # as it is meant to represent the integers using all the alphanumeric # characters, [no special characters] = {0..9}, {A..Z}, {a..z} # # I plan on using this to shorten the representation of possibly long ids, # a la url shortenters # # saturate() takes the base 62 key, as a string, and turns it back into an integer # dehydrate() takes an integer and turns it into the base 62 string # import math import sys BASE = 62 UPPERCASE_OFFSET = 55 LOWERCASE_OFFSET = 61 DIGIT_OFFSET = 48 def true_ord(char): """ Turns a digit [char] in character representation from the number system with base [BASE] into an integer. """ if char.isdigit(): return ord(char) - DIGIT_OFFSET elif char >= 'A' and char <= 'Z': return ord(char) - UPPERCASE_OFFSET elif char >= 'a' and char <= 'z': return ord(char) - LOWERCASE_OFFSET else: raise ValueError("%s is not a valid character" % char) def true_chr(integer): """ Turns an integer [integer] into digit in base [BASE] as a character representation. """ if integer < 10: return chr(integer + DIGIT_OFFSET) elif integer >= 10 and integer <= 35: return chr(integer + UPPERCASE_OFFSET) elif integer >= 36 and integer < 62: return chr(integer + LOWERCASE_OFFSET) else: raise ValueError("%d is not a valid integer in the range of base %d" % (integer, BASE)) def saturate(key): """ Turn the base [BASE] number [key] into an integer """ idx = 0 int_sum = 0 reversed_key = key[::-1] for char in reversed_key: int_sum += true_ord(char) * int(math.pow(BASE, idx)) idx += 1 return int_sum def dehydrate(integer): """ Turn an integer [integer] into a base [BASE] number in string representation """ if integer == 0: return '0' digit = integer string = "" while digit > 0: remainder = digit % BASE string = true_chr(remainder) + string digit /= BASE return string if __name__ == '__main__': if sys.argv[1] == '-tests': passed_tests = True for i in xrange(0, 1000): passed_tests &= i == saturate(dehydrate(i)) print passed_tests user_input = sys.argv[2] if sys.argv[1] == '-s': try: result = saturate(user_input) print result except ValueError as e: print e elif sys.argv[1] == '-d': try: result = dehydrate(int(user_input)) print result except ValueError as e: print e else: print "I don't understand option %s" % sys.argv[1]