puts "================"
puts "OCC2932"
puts "================"
puts ""
#######################################################################################
# Create Attribute Delta depending on actual change of the attribute 
#######################################################################################
# Case 10 (TDataStd_PatternStd)
#######################################################################################

# Create a new document and set UndoLimit
NewDocument D MDTV-Standard
UndoLimit D 100

# Create a label and set attributes
NewCommand D
set Label 0:2

############################################
# Create a box
set X 10
set Y 20
set Z 30
set DX 100
set DY 200
set DZ 300
box Box ${X} ${Y} ${Z} ${DX} ${DY} ${DZ}

# Set a shape to the label
set BoxLabel 0:3
SetShape D ${BoxLabel} Box

# Set a real attribute
set RealLabel 0:4
set RealPattern 123.456789
SetReal D ${RealLabel} ${RealPattern}

# Set an integer attribute
set IntegerLabel 0:5
set IntegerPattern 123456789
SetInteger D ${IntegerLabel} ${IntegerPattern}

# Set a signature
set signature 1
############################################

set Real1 300.
set Real2 400.
set modified_attribute TDataStd_Real

############################################
# Set TDataStd_PatternStd
Label D ${Label}
SetPattern D ${Label} ${signature} ${BoxLabel} ${RealLabel} ${IntegerLabel}
############################################

SetReal D ${Label} ${Real1}
set list [DumpCommand D]

# Open a transaction
NewCommand D
set list [DumpCommand D]

############################################
# Set old value for TDataStd_PatternStd
SetPattern D ${Label} ${signature} ${BoxLabel} ${RealLabel} ${IntegerLabel}
############################################

# Set new value for TDataStd_Real
SetReal D ${Label} ${Real2}
set list [DumpCommand D]

# Open a transaction
NewCommand D
set list [DumpCommand D]

# Checking
set ll [llength ${list}]
set good_length 17
puts "length = ${ll}"
puts "good_length = ${good_length}"

if { ${ll} != ${good_length} } {
  puts "OCC2932 Error (case 1)"
} else {
  set name_attribute [lindex ${list} [expr ${good_length} - 1]]
  puts "name_attribute = ${name_attribute}"
  puts "modified_attribute = ${modified_attribute}"
  if {[string compare ${name_attribute} ${modified_attribute}] == 0} {
    puts "OCC2932 OK"
  } else {
    puts "OCC2932 Error (case 2)"
  }
}
