Пример #1
0
 def test_base_4096(self):
     encoder = Encoder(base=4096)
     self.assertEquals(encoder.digits, 2)
     self.assertEquals('00', encoder.encode(0))
     self.assertEquals('0R', encoder.encode(34))
     self.assertEquals('R0', encoder.encode(34 * 64))
     self.assertEquals('oo', encoder.encode(4095))
     all_encodings = set()
     for n in range(0, 4096):
         encoded = encoder.encode(n)
         self.assertEquals(n, encoder.decode(encoded))
         all_encodings.add(encoded)
     self.assertEquals(len(all_encodings), 4096)
Пример #2
0
 def test_base_4096(self):
     encoder = Encoder(base=4096)
     self.assertEquals(encoder.digits, 2)
     self.assertEquals('00', encoder.encode(0))
     self.assertEquals('0R', encoder.encode(34))
     self.assertEquals('R0', encoder.encode(34 * 64))
     self.assertEquals('oo', encoder.encode(4095))
     all_encodings = set()
     for n in range(0, 4096):
         encoded = encoder.encode(n)
         self.assertEquals(n, encoder.decode(encoded))
         all_encodings.add(encoded)
     self.assertEquals(len(all_encodings), 4096)
Пример #3
0
 def test_decoding_errors_base_4096(self):
     encoder = Encoder(base=4096)
     self.assertRaises(EncoderException, encoder.decode, 'o')
     self.assertRaises(EncoderException, encoder.decode, '0AR')
     self.assertRaises(EncoderException, encoder.decode, '  ')
Пример #4
0
 def test_encode_decode_64(self):
     encoder = Encoder(base=64)
     self.assertEquals('R', encoder.encode(34))
     self.assertEquals('o', encoder.encode(63))
     for n in range(0, 64):
         self.assertEquals(n, encoder.decode(encoder.encode(n)))
Пример #5
0
 def test_decode(self):
     encoder = Encoder(base=10)
     self.assertEquals(4, encoder.decode('4'))
Пример #6
0
 def test_encode(self):
     encoder = Encoder(base=10)
     self.assertEquals('4', encoder.encode(4))
Пример #7
0
 def test_init_4096(self):
     encoder = Encoder(base=4096)
     self.assertEquals(encoder.base, 4096)
     self.assertEquals(encoder.digits, 2)
Пример #8
0
 def test_init_64(self):
     encoder = Encoder(base=64)
     self.assertEquals(encoder.base, 64)
     self.assertEquals(encoder.digits, 1)
Пример #9
0
 def test_init(self):
     encoder = Encoder(base=24)
     self.assertEquals(encoder.base, 24)
     self.assertEquals(encoder.digits, 1)
Пример #10
0
from django.db import models

from cheaptrees.anybase import Encoder

encoder = Encoder()
DIGITS = encoder.digits
DEPTH = 10


class Thread(models.Model):
    pass


class Node(models.Model):
    thread = models.ForeignKey(Thread)
    locator = models.CharField(max_length=DEPTH * DIGITS, db_index=True)

    #depth = models.IntegerField(editable=False)

    class Meta:
        abstract = True
        ordering = ['locator']
        unique_together = ('thread', 'locator')

    @property
    def manager(self):
        return self.__class__.objects

    @property
    def position(self):
        return encoder.decode(self.locator[DIGITS:])
Пример #11
0
 def test_encode_decode_64(self):
     encoder = Encoder(base=64)
     self.assertEquals('R', encoder.encode(34))
     self.assertEquals('o', encoder.encode(63))
     for n in range(0, 64):
         self.assertEquals(n, encoder.decode(encoder.encode(n)))
Пример #12
0
 def test_decode(self):
     encoder = Encoder(base=10)
     self.assertEquals(4, encoder.decode('4'))
Пример #13
0
 def test_encode(self):
     encoder = Encoder(base=10)
     self.assertEquals('4', encoder.encode(4))