How can I compare truncated test results in DrRacket?

Actual value (make-ta ...) differs from (make-ta ...), the expected value.

  • aberrate_junior_beatnik (he/him)@midwest.social
    link
    fedilink
    English
    arrow-up
    1
    ·
    16 days ago

    I’m not super familiar with DrRacket (when last I used it it was DrScheme, which should tell you how old I am). I downloaded it off flathub, DDG’d ta-solver-starter.rkt, ran it, and here’s what I saw:

    Not sure what to tell you!

    • appleberry@aussie.zoneOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      15 days ago

      I appreciate the effort! Further to this, I seems like if I change my function and the expected result to compare lists instead of ‘make-ta’ they pass!

      (check-expect (sub-slot 1 SOBA) (make-ta "Soba" 1 (list 3))) ; subtract one shift <--- FAIL
      (check-expect (sub-slot 3 SOBA) (make-ta "Soba" 1 (list 1))) ; subtract a different shift <--- FAIL
      
      (define (sub-slot slot ta)
        (cond [(and (> (ta-max ta) 0) (> (length (ta-avail ta)) 1))
                    (make-ta (ta-name ta) 
                             (sub1 (ta-max ta))
                             (remq slot (ta-avail ta)))]
                    [else empty]))
      
      (check-expect (sub-slot 1 SOBA) (make-ta "Soba" 1 (list 3))) ; subtract one shift <--- FAIL
      (check-expect (sub-slot 3 SOBA) (list "Soba" 1 (list 1))) ; subtract a different shift <--- PASS
      
      (define (sub-slot slot ta)
        (cond [(and (> (ta-max ta) 0) (> (length (ta-avail ta)) 1))
                    (list (ta-name ta) 
                             (sub1 (ta-max ta))
                             (remq slot (ta-avail ta)))]
                    [else empty]))
      

      This is the final problem of the course 😅. I’m going to try and get to the bottom of this rather than work around with lists (which is what I did last time). I must have some misunderstanding with make- functions…