       (is (= (:zone (refresh publics2) :discard)))
       (is (= "Public Support" (:title (first (get-in @state [:corp :scored])))))
       (is (= 1 (:agendapoints (first (get-in @state [:corp :scored]))))))))
+
+(deftest reversed-accounts
+  "Reversed Accounts - Trash to make Runner lose 4 credits per advancement"
+  (do-game
+    (new-game (default-corp [(qty "Reversed Accounts" 1)])
+              (default-runner))
+    (play-from-hand state :corp "Reversed Accounts" "New remote")
+    (let [rev (get-in @state [:corp :servers :remote1 :content 0])]
+      (core/advance state :corp {:card (refresh rev)})
+      (core/advance state :corp {:card (refresh rev)})
+      (take-credits state :corp)
+      (play-from-hand state :runner "Sure Gamble")
+      (play-from-hand state :runner "Sure Gamble")
+      (play-from-hand state :runner "Sure Gamble")
+      (take-credits state :runner)
+      (is (= 18 (:credit (get-runner))))
+      (core/advance state :corp {:card (refresh rev)})
+      (core/advance state :corp {:card (refresh rev)})
+      (is (= 4 (:advance-counter (refresh rev))))
+      (core/rez state :corp (refresh rev))
+      (card-ability state :corp rev 0)
+      (is (= 1 (count (:discard (get-corp)))) "Reversed Accounts trashed")
+      (is (= 2 (:credit (get-runner))) "Runner lost 16 credits"))))
+
+(deftest ronin
+  "Ronin - Click-trash to do 3 net damage when it has 4 or more advancements"
+  (do-game
+    (new-game (default-corp [(qty "Ronin" 1) (qty "Mushin No Shin" 1)])
+              (default-runner))
+    (play-from-hand state :corp "Mushin No Shin")
+    (prompt-select :corp (find-card "Ronin" (:hand (get-corp))))
+    (let [ron (get-in @state [:corp :servers :remote1 :content 0])]
+      (is (= 3 (:advance-counter (refresh ron))))
+      (core/rez state :corp (refresh ron))
+      (card-ability state :corp ron 0)
+      (is (= 3 (count (:hand (get-runner)))) "Ronin ability didn't fire with only 3 advancements")
+      (take-credits state :corp)
+      (take-credits state :runner)
+      (core/advance state :corp {:card (refresh ron)})
+      (is (= 4 (:advance-counter (refresh ron))))
+      (card-ability state :corp ron 0)
+      (is (= 3 (count (:discard (get-runner)))) "Ronin did 3 net damage")
+      (is (= 2 (count (:discard (get-corp)))) "Ronin trashed"))))
 
 (deftest sundew
   "Sundew"

      (is (= "Adonis Campaign" (get-in @state [:corp :servers :remote5 :content 0 :title])) "Adonis installed by Team Sponsorship")
      (is (nil? (:ts-active (refresh tsp1))) "Team Sponsorship 1 ability disabled")
      (is (nil? (:ts-active (refresh tsp2))) "Team Sponsorship 2 ability disabled"))))

      (is (= 8 (get-in @state [:corp :credit])))
      (is (= 4 (get-in (refresh launch) [:counter]))))))

(deftest mark-yale
  "Mark Yale - Spend agenda counters or trash himself to gain credits"
  (do-game
    (new-game (default-corp [(qty "Firmware Updates" 1) (qty "Mark Yale" 1)]) (default-runner))
    (play-from-hand state :corp "Firmware Updates" "New remote")
    (play-from-hand state :corp "Mark Yale" "New remote")
    (let [firm (get-in @state [:corp :servers :remote1 :content 0])
          yale (get-in @state [:corp :servers :remote2 :content 0])]
      (score-agenda state :corp firm)
      (core/rez state :corp yale)
      (let [firmscored (get-in @state [:corp :scored 0])]
        (is (= 3 (get-in firmscored [:counter])))
        (card-ability state :corp yale 1)
        (prompt-select :corp firmscored)
        (is (= 7 (:credit (get-corp))) "Gained 3 credits")
        (card-ability state :corp yale 0)
        (is (= 9 (:credit (get-corp))) "Gained 2 credits")
        (is (= 1 (count (:discard (get-corp)))) "Mark Yale trashed")))))

(deftest public-support
  "Public support scoring and trashing"
  ;TODO could also test for NOT triggering "when scored" events
