## NOTE: THIS FILE IS GENERATED BY EPSCRIPT! DO NOT MODITY
from eudplib import *
from eudplib.core.eudfunc import EUDTraceLog, EUDTracedFunc, EUDTracedTypedFunc, EUDTracedMethod, EUDTracedTypedMethod
from eudplib.epscript.helper import _RELIMP, _TYGV, _TYSV, _TYLV, _CGFW, _ARR, _VARR, _SRET, _SV, _ATTW, _ARRW, _ATTC, _ARRC, _L2V, _LSH, _ALL
# (Line 1) function test_attribute() {
@EUDFunc
def f_test_attribute():
    # (Line 2) var ret = 0;
    ret = _TYLV([None], [0])
    # (Line 3) const queue = EUDQueue(10)();
    queue = EUDQueue(10)()
    # (Line 4) if (queue.length == 0) ret += 1 << 0;
    if EUDIf()(_ATTC(queue, 'length') == 0):
        ret.__iadd__(_LSH(1,0))
        # (Line 5) queue.append(0);
    EUDEndIf()
    queue.append(0)
    # (Line 6) if (queue.length == 1) ret += 1 << 1;
    if EUDIf()(_ATTC(queue, 'length') == 1):
        ret.__iadd__(_LSH(1,1))
        # (Line 8) const deque = EUDDeque(10)();
    EUDEndIf()
    deque = EUDDeque(10)()
    # (Line 9) if (deque.length == 0) ret += 1 << 2;
    if EUDIf()(_ATTC(deque, 'length') == 0):
        ret.__iadd__(_LSH(1,2))
        # (Line 10) deque.append(0);
    EUDEndIf()
    deque.append(0)
    # (Line 11) if (deque.length == 1) ret += 1 << 3;
    if EUDIf()(_ATTC(deque, 'length') == 1):
        ret.__iadd__(_LSH(1,3))
        # (Line 12) return ret;
    EUDEndIf()
    EUDReturn(ret)
    # (Line 13) }
