def makebold(fn):
    def wrapped():
        return "<b>" + fn() + "</b>"
    return wrapped

def makeitalic(fn):
    def wrapped():
        return "<i>" + fn() + "</i>"
    return wrapped

@makebold
def hello1():
    return "hello world"
assert hello1()=="<b>hello world</b>"

@makebold
@makeitalic
def hello2():
    return "hello world"

assert hello2()=="<b><i>hello world</i></b>"

def function_decorate_function(f):
    return lambda x=1:f(x)

class class_decorate_function(object):
    def __init__(self, f):
        self.f=f
    def __call__(self, x=2):
        return self.f(x)

def function_decorate_class(c):
    c.calc_v = lambda self: 9
    return c

class class_decorate_class(object):
    def __init__(self, c):
        self.c=c
        c.calc_v = lambda self: 7
    def __call__(self):
        return self.c()

@function_decorate_function
def function_decorated_function(x=0):
    return 1+x

@class_decorate_function
def class_decorated_function(x=0):
    return 1+x

@function_decorate_class
class function_decorated_class:
    def __init__(self):
        self.v = self.calc_v()
    def calc_v(self, v=5):
        return v

@class_decorate_class
class class_decorated_class:
    def __init__(self):
        self.v = self.calc_v()
    def calc_v(self, v=5):
        return v

assert function_decorated_function() ==2, 'Function fails decorating function'
assert class_decorated_function() == 3, 'Class fails decorating function'
assert function_decorated_class().v == 9, 'Function fails decorating class'
assert class_decorated_class().v == 7, 'Class fails decorating class'

print('passed all tests..')

1e85202e18dfebe772e8f23391d58285f061d9a3
<mask token>


def function_decorate_function(f):
    return lambda x=1: f(x)


class class_decorate_function(object):

    def __init__(self, f):
        self.f = f

    def __call__(self, x=2):
        return self.f(x)


<mask token>


class class_decorate_class(object):

    def __init__(self, c):
        self.c = c
        c.calc_v = lambda self: 7

    def __call__(self):
        return self.c()


<mask token>


@function_decorate_class
class function_decorated_class:

    def __init__(self):
        self.v = self.calc_v()

    def calc_v(self, v=5):
        return v


@class_decorate_class
class class_decorated_class:

    def __init__(self):
        self.v = self.calc_v()

    def calc_v(self, v=5):
        return v


<mask token>

<mask token>


def makeitalic(fn):

    def wrapped():
        return '<i>' + fn() + '</i>'
    return wrapped


@makebold
def hello1():
    return 'hello world'


<mask token>


def function_decorate_function(f):
    return lambda x=1: f(x)


class class_decorate_function(object):

    def __init__(self, f):
        self.f = f

    def __call__(self, x=2):
        return self.f(x)


def function_decorate_class(c):
    c.calc_v = lambda self: 9
    return c


class class_decorate_class(object):

    def __init__(self, c):
        self.c = c
        c.calc_v = lambda self: 7

    def __call__(self):
        return self.c()


<mask token>


@class_decorate_function
def class_decorated_function(x=0):
    return 1 + x


@function_decorate_class
class function_decorated_class:

    def __init__(self):
        self.v = self.calc_v()

    def calc_v(self, v=5):
        return v


@class_decorate_class
class class_decorated_class:

    def __init__(self):
        self.v = self.calc_v()

    def calc_v(self, v=5):
        return v


<mask token>

<mask token>


def makeitalic(fn):

    def wrapped():
        return '<i>' + fn() + '</i>'
    return wrapped


@makebold
def hello1():
    return 'hello world'


<mask token>


@makebold
@makeitalic
def hello2():
    return 'hello world'


<mask token>


def function_decorate_function(f):
    return lambda x=1: f(x)


class class_decorate_function(object):

    def __init__(self, f):
        self.f = f

    def __call__(self, x=2):
        return self.f(x)


def function_decorate_class(c):
    c.calc_v = lambda self: 9
    return c


class class_decorate_class(object):

    def __init__(self, c):
        self.c = c
        c.calc_v = lambda self: 7

    def __call__(self):
        return self.c()


<mask token>


@class_decorate_function
def class_decorated_function(x=0):
    return 1 + x


@function_decorate_class
class function_decorated_class:

    def __init__(self):
        self.v = self.calc_v()

    def calc_v(self, v=5):
        return v


@class_decorate_class
class class_decorated_class:

    def __init__(self):
        self.v = self.calc_v()

    def calc_v(self, v=5):
        return v


<mask token>

<mask token>


def makeitalic(fn):

    def wrapped():
        return '<i>' + fn() + '</i>'
    return wrapped


@makebold
def hello1():
    return 'hello world'


<mask token>


@makebold
@makeitalic
def hello2():
    return 'hello world'


<mask token>


def function_decorate_function(f):
    return lambda x=1: f(x)


class class_decorate_function(object):

    def __init__(self, f):
        self.f = f

    def __call__(self, x=2):
        return self.f(x)


def function_decorate_class(c):
    c.calc_v = lambda self: 9
    return c


class class_decorate_class(object):

    def __init__(self, c):
        self.c = c
        c.calc_v = lambda self: 7

    def __call__(self):
        return self.c()


@function_decorate_function
def function_decorated_function(x=0):
    return 1 + x


@class_decorate_function
def class_decorated_function(x=0):
    return 1 + x


@function_decorate_class
class function_decorated_class:

    def __init__(self):
        self.v = self.calc_v()

    def calc_v(self, v=5):
        return v


@class_decorate_class
class class_decorated_class:

    def __init__(self):
        self.v = self.calc_v()

    def calc_v(self, v=5):
        return v


<mask token>

def makebold(fn):
    def wrapped():
        return "<b>" + fn() + "</b>"
    return wrapped

def makeitalic(fn):
    def wrapped():
        return "<i>" + fn() + "</i>"
    return wrapped

@makebold
def hello1():
    return "hello world"
assert hello1()=="<b>hello world</b>"

@makebold
@makeitalic
def hello2():
    return "hello world"

assert hello2()=="<b><i>hello world</i></b>"

def function_decorate_function(f):
    return lambda x=1:f(x)

class class_decorate_function(object):
    def __init__(self, f):
        self.f=f
    def __call__(self, x=2):
        return self.f(x)

def function_decorate_class(c):
    c.calc_v = lambda self: 9
    return c

class class_decorate_class(object):
    def __init__(self, c):
        self.c=c
        c.calc_v = lambda self: 7
    def __call__(self):
        return self.c()

@function_decorate_function
def function_decorated_function(x=0):
    return 1+x

@class_decorate_function
def class_decorated_function(x=0):
    return 1+x

@function_decorate_class
class function_decorated_class:
    def __init__(self):
        self.v = self.calc_v()
    def calc_v(self, v=5):
        return v

@class_decorate_class
class class_decorated_class:
    def __init__(self):
        self.v = self.calc_v()
    def calc_v(self, v=5):
        return v

assert function_decorated_function() ==2, 'Function fails decorating function'
assert class_decorated_function() == 3, 'Class fails decorating function'
assert function_decorated_class().v == 9, 'Function fails decorating class'
assert class_decorated_class().v == 7, 'Class fails decorating class'

print('passed all tests..')
