#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# ***** BEGIN LICENSE BLOCK *****
# Copyright (C) 2012  Hayaki Saito <user@zuse.jp>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
# ***** END LICENSE BLOCK *****

class Cell():

    __value = None
    attr = (0, 0x42)

    def __init__(self):
        self.__value = u' '

    def write(self, value, attr):
        self.__value = unichr(value)
        self.attr = attr.get()

    def pad(self):
        self.__value = None 

    def combine(self, value):
        self.__value += unichr(value)

    def get(self):
        return self.__value

    def clear(self, attr):
        self.__value = u' '
        self.attr = attr.get()

def test():
    from attribute import Attribute
    cell = Cell() 
    attr = Attribute()
    print cell.get()
    cell.write(0x34, attr)
    print cell.get()
    cell.clear(attr)
    print cell.get()
    cell.write(0x3042, attr)
    print cell.get()
    cell.pad()
    print cell.get()
    cell.write(0x09a4, attr)
    print cell.get()
    cell.combine(0x20DE)
    print cell.get()
    cell.combine(0x20DD)
    print cell.get()
    cell.combine(0x0308)
    print cell.get()

if __name__ == "__main__":
    print "line test."
    test()


@@ -1274,16 +1274,28 @@
 t():%0A   
+ %22%22%22%0A    %3E%3E%3E
  from at
@@ -1318,24 +1318,28 @@
 ttribute%0A   
+ %3E%3E%3E
  cell = Cell
@@ -1341,24 +1341,28 @@
  Cell() %0A   
+ %3E%3E%3E
  attr = Attr
@@ -1368,24 +1368,28 @@
 ribute()%0A   
+ %3E%3E%3E
  print cell.
@@ -1389,32 +1389,36 @@
 t cell.get()%0A   
+ %3E%3E%3E
  cell.write(0x34
@@ -1420,32 +1420,36 @@
 (0x34, attr)%0A   
+ %3E%3E%3E
  print cell.get(
@@ -1449,24 +1449,28 @@
 ll.get()%0A   
+ %3E%3E%3E
  cell.clear(
@@ -1470,32 +1470,36 @@
 .clear(attr)%0A   
+ %3E%3E%3E
  print cell.get(
@@ -1495,32 +1495,36 @@
 t cell.get()%0A   
+ %3E%3E%3E
  cell.write(0x30
@@ -1528,32 +1528,36 @@
 x3042, attr)%0A   
+ %3E%3E%3E
  print cell.get(
@@ -1557,24 +1557,28 @@
 ll.get()%0A   
+ %3E%3E%3E
  cell.pad()%0A
@@ -1576,24 +1576,28 @@
 ll.pad()%0A   
+ %3E%3E%3E
  print cell.
@@ -1601,24 +1601,28 @@
 ll.get()%0A   
+ %3E%3E%3E
  cell.write(
@@ -1634,24 +1634,28 @@
 4, attr)%0A   
+ %3E%3E%3E
  print cell.
@@ -1655,32 +1655,36 @@
 t cell.get()%0A   
+ %3E%3E%3E
  cell.combine(0x
@@ -1688,24 +1688,28 @@
 (0x20DE)%0A   
+ %3E%3E%3E
  print cell.
@@ -1709,32 +1709,36 @@
 t cell.get()%0A   
+ %3E%3E%3E
  cell.combine(0x
@@ -1742,24 +1742,28 @@
 (0x20DD)%0A   
+ %3E%3E%3E
  print cell.
@@ -1771,16 +1771,20 @@
 et()%0A   
+ %3E%3E%3E
  cell.co
@@ -1796,24 +1796,28 @@
 (0x0308)%0A   
+ %3E%3E%3E
  print cell.
@@ -1821,16 +1821,65 @@
 ll.get()
+%0A    %22%22%22%0A    import doctest%0A    doctest.testmod()
 %0A%0Aif __n
@@ -1903,31 +1903,8 @@
 _%22:%0A
-    print %22line test.%22%0A
     

Add cell tests