Bugs: Browse | Submit New | Admin

[#27059] Fxri crashes... Different IDE does the job.

Date:
2009-09-06 14:36
Priority:
3
Submitted By:
Sjuul Janssen (obeleh)
Assigned To:
Nobody (None)
Category:
None
State:
Open
Summary:
Fxri crashes... Different IDE does the job.

Detailed description
related: http://stackoverflow.com/questions/1385661/fxri-ruby-hangs-at-compilation-of-certain-classes-but-doesnt-after-a
-few-smal/1385795#1385795


#This works

class Example 
  def initialize(a,b,c)
    @pA = a
    @pB = b
    @pC = c
  end

  def shouldntThisWork()
    myArray = [@pA,@pB,@pC]
  end

  def test()
    arr1 = [@pA, @pB, @pC]
    arr1.each { | elem | print elem, "\n"}
    return 
  end

end



#This works

class Triangle
  #checks first if inputs are of type float and bigger than zero
  def initialize(sideA, sideB, sideC)
    raise "Side A must be a float." if not sideA.kind_of? Float
    raise "Side B must be a float." if not sideB.kind_of? Float
    raise "Side C must be a float." if not sideC.kind_of? Float

    raise "Size error for side A (must be greater than 0)" if sideA <= 0
    raise "Size error for side B (must be greater than 0)" if sideB <= 0
    raise "Size error for side C (must be greater than 0)" if sideC <= 0

    @pA = sideA
    @pB = sideB
    @pC = sideC
  end

  def test()
    arr1 = [@pA, @pB, @pC]
    arr1.each { | elem | print elem, "\n"}
    return 
  end

end



#This works

class Triangle
  #checks first if inputs are of type float and bigger than zero
  def initialize(sideA, sideB, sideC)
    raise "Side A must be a float." if not sideA.kind_of? Float
    raise "Side B must be a float." if not sideB.kind_of? Float
    raise "Side C must be a float." if not sideC.kind_of? Float

    raise "Size error for side A (must be greater than 0)" if sideA <= 0
    raise "Size error for side B (must be greater than 0)" if sideB <= 0
    raise "Size error for side C (must be greater than 0)" if sideC <= 0

    @pA = sideA
    @pB = sideB
    @pC = sideC
  end

  def isEquilateral()
    return (@pA == @pB and @pB == @pC) 
  end

  def isIsosceles()
    numEqual = 0
    if @pA == @pB
      numEqual += 1
    end
    if @pA == @pC
      numEqual += 1
    end
    if @pC == @pB
      numEqual += 1
    end

    return (numEqual == 2)
  end

  def test()
    arr1 = [@pA, @pB, @pC]
    arr1.each { | elem | print elem, "\n"}
    return 
  end

end




# This Works

class Triangle
  #checks first if inputs are of type float and bigger than zero
  def initialize(sideA, sideB, sideC)
    raise "Side A must be a float." if not sideA.kind_of? Float
    raise "Side B must be a float." if not sideB.kind_of? Float
    raise "Side C must be a float." if not sideC.kind_of? Float

    raise "Size error for side A (must be greater than 0)" if sideA <= 0
    raise "Size error for side B (must be greater than 0)" if sideB <= 0
    raise "Size error for side C (must be greater than 0)" if sideC <= 0

    @pA = sideA
    @pB = sideB
    @pC = sideC
  end

  def isEquilateral()
    return (@pA == @pB and @pB == @pC) 
  end

  def isIsosceles()
    numEqual = 0
    if @pA == @pB
      numEqual += 1
    end
    if @pA == @pC
      numEqual += 1
    end
    if @pC == @pB
      numEqual += 1
    end

    return (numEqual == 2)
  end

  def test()
    arr1 = [@pA, @pB, @pC]
    arr1.each { | elem | print elem, "\n"}
    return 
  end

end

#This works
class Triangle
  #checks first if inputs are of type float and bigger than zero
  def initialize(sideA, sideB, sideC)
    raise "Side A must be a float." if not sideA.kind_of? Float
    raise "Side B must be a float." if not sideB.kind_of? Float
    raise "Side C must be a float." if not sideC.kind_of? Float

    raise "Size error for side A (must be greater than 0)" if sideA <= 0
    raise "Size error for side B (must be greater than 0)" if sideB <= 0
    raise "Size error for side C (must be greater than 0)" if sideC <= 0

    @pA = sideA
    @pB = sideB
    @pC = sideC
  end

  def A()
    return @pA
  end

  def B()
    return @pB
  end

  def C()
    return @pC
  end

  def test()
    arr1 = [@pA, @pB, @pC]
    arr1.each { | elem | print elem, "\n"}
    return 
  end

  def isEquilateral()
    return (@pA == @pB and @pB == @pC) 
  end

end

# this doesnt work
class Triangle
  #checks first if inputs are of type float and bigger than zero
  def initialize(sideA, sideB, sideC)
    raise "Side A must be a float." if not sideA.kind_of? Float
    raise "Side B must be a float." if not sideB.kind_of? Float
    raise "Side C must be a float." if not sideC.kind_of? Float

    raise "Size error for side A (must be greater than 0)" if sideA <= 0
    raise "Size error for side B (must be greater than 0)" if sideB <= 0
    raise "Size error for side C (must be greater than 0)" if sideC <= 0

    @pA = sideA
    @pB = sideB
    @pC = sideC
  end

  def A()
    return @pA
  end

  def B()
    return @pB
  end

  def C()
    return @pC
  end

  def test()
    arr1 = [@pA, @pB, @pC]
    arr1.each { | elem | print elem, "\n"}
    return 
  end

  def isEquilateral()
    return (@pA == @pB and @pB == @pC) 
  end

  def isIsosceles()
    numEqual = 0
    if @pA == @pB
      numEqual += 1
    end
    if @pA == @pC
      numEqual += 1
    end
    if @pC == @pB
      numEqual += 1
    end

    return (numEqual == 2)
  end

end




# But then this does work
class Triangle
  #checks first if inputs are of type float and bigger than zero
  def initialize(sideA, sideB, sideC)
    raise "Side A must be a float." if not sideA.kind_of? Float
    raise "Side B must be a float." if not sideB.kind_of? Float
    raise "Side C must be a float." if not sideC.kind_of? Float

    raise "Size error for side A (must be greater than 0)" if sideA <= 0
    raise "Size error for side B (must be greater than 0)" if sideB <= 0
    raise "Size error for side C (must be greater than 0)" if sideC <= 0

    @pA = sideA
    @pB = sideB
    @pC = sideC
  end

  def A()
    return @pA
  end

  def B()
    return @pB
  end

  def C()
    return @pC
  end

  def isEquilateral()
    return (@pA == @pB and @pB == @pC) 
  end

  def isIsosceles()
    numEqual = 0
    if @pA == @pB
      numEqual += 1
    end
    if @pA == @pC
      numEqual += 1
    end
    if @pC == @pB
      numEqual += 1
    end

    return (numEqual == 2)
  end

end



# This doesnt

class Triangle
  #checks first if inputs are of type float and bigger than zero
  def initialize(sideA, sideB, sideC)
    raise "Side A must be a float." if not sideA.kind_of? Float
    raise "Side B must be a float." if not sideB.kind_of? Float
    raise "Side C must be a float." if not sideC.kind_of? Float

    raise "Size error for side A (must be greater than 0)" if sideA <= 0
    raise "Size error for side B (must be greater than 0)" if sideB <= 0
    raise "Size error for side C (must be greater than 0)" if sideC <= 0

    @pA = sideA
    @pB = sideB
    @pC = sideC
  end

  def A()
    return @pA
  end

  def B()
    return @pB
  end

  def C()
    return @pC
  end

  def isEquilateral()
    return (@pA == @pB and @pB == @pC) 
  end

  def isIsosceles()
    numEqual = 0
    if @pA == @pB
      numEqual += 1
    end
    if @pA == @pC
      numEqual += 1
    end
    if @pC == @pB
      numEqual += 1
    end

    return (numEqual == 2)
  end

  def test()
    arr1 = [@pA, @pB, @pC]
    arr1.each { | elem | print elem, "\n"}
    return 
  end

end



# This works again
class Triangle
  #checks first if inputs are of type float and bigger than zero
  def initialize(sideA, sideB, sideC)

    @pA = sideA
    @pB = sideB
    @pC = sideC
  end

  def A()
    return @pA
  end

  def B()
    return @pB
  end

  def C()
    return @pC
  end

  def isEquilateral()
    return (@pA == @pB and @pB == @pC) 
  end

  def isIsosceles()
    numEqual = 0
    if @pA == @pB
      numEqual += 1
    end
    if @pA == @pC
      numEqual += 1
    end
    if @pC == @pB
      numEqual += 1
    end

    return (numEqual == 2)
  end

  def test()
    arr1 = [@pA, @pB, @pC]
    arr1.each { | elem | print elem, "\n"}
    return 
  end

end

#test
class Triangle
  #checks first if inputs are of type float and bigger than zero
  def initialize(sideA, sideB, sideC)

    @pA = sideA
    @pB = sideB
    @pC = sideC
  end

  def A()
    return @pA
  end

  def B()
    return @pB
  end

  def C()
    return @pC
  end

  def isEquilateral()
    return (@pA == @pB and @pB == @pC) 
  end

  def isIsosceles()
    numEqual = 0
    if @pA == @pB
      numEqual += 1
    end
    if @pA == @pC
      numEqual += 1
    end
    if @pC == @pB
      numEqual += 1
    end

    return (numEqual == 2)
  end

  def test()
    arr1 = [@pA, @pB, @pC]
    arr1.each { | elem | print elem, "\n"}
    return 
  end

  def dunno()
    return "Dunno"
  end

  def neee()
    return "Een ", @pA
  end
end

Add A Comment: Notepad

Please login


Followup

No Followups Have Been Posted

Attached Files:

Name Description Download
No Files Currently Attached

Changes:

No Changes Have Been Made to This Item